ubuntu

Ubuntu中Swagger文档怎样生成与查看

小樊
53
2025-10-03 11:48:56
栏目: 智能运维

在Ubuntu中生成与查看Swagger文档的常见方法

Swagger是一套用于描述、构建和文档化RESTful API的工具集,支持通过代码注解自动生成文档,并提供交互式界面测试API。以下是在Ubuntu系统中生成与查看Swagger文档的具体步骤,涵盖不同工具和场景:

一、准备工作

在生成Swagger文档前,需确保Ubuntu系统已安装Node.jsnpm(Node.js包管理器),这是使用Swagger Editor、Swagger UI等工具的基础:

sudo apt update
sudo apt install -y nodejs npm

二、使用Swagger Editor生成与查看文档

Swagger Editor是一个开源的在线/离线工具,支持直接编辑Swagger YAML/JSON文件并实时预览文档效果。

1. 安装Swagger Editor

2. 启动Swagger Editor

3. 生成与查看文档

三、使用Swagger UI查看生成的文档

Swagger UI是一个可视化工具,可将Swagger YAML/JSON文件渲染为交互式API文档,支持在线测试接口。

1. 安装Swagger UI

2. 配置Swagger UI

创建一个简单的Node.js服务器,用于托管Swagger文档:

const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./path/to/your/swagger.json'); // 替换为你的文档路径

const app = express();
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument)); // 挂载Swagger UI到/api-docs路径
const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Swagger UI is running at http://localhost:${PORT}/api-docs`);
});

3. 启动并查看文档

四、通过编程方式生成Swagger文档(以Go语言为例)

若项目使用Go语言开发,可使用swag工具根据代码中的注释自动生成Swagger文档。

1. 安装swag工具

在终端运行以下命令安装:

go install github.com/swaggo/swag/cmd/swag@latest

2. 添加Swagger注释

在Go代码的关键位置添加注释,描述API信息。例如:

package main

import (
	"net/http"
)

// @Summary 获取用户信息
// @Description 根据用户ID返回用户详情
// @Tags Users
// @Accept json
// @Produce json
// @Param id path int true "用户ID"
// @Success 200 {object} User
// @Router /users/{id} [get]
func getUserByID(w http.ResponseWriter, r *http.Request) {
	// 业务逻辑
}

type User struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

3. 生成文档

五、集成到构建流程(可选)

若项目使用Maven或Gradle构建,可将Swagger Codegen集成到构建过程中,自动生成文档。

1. Maven集成

pom.xml中添加OpenAPI Generator插件:

<build>
  <plugins>
    <plugin>
      <groupId>org.openapitools</groupId>
      <artifactId>openapi-generator-maven-plugin</artifactId>
      <version>5.2.1</version>
      <executions>
        <execution>
          <goals>
            <goal>generate</goal>
          </goals>
          <configuration>
            <inputSpec>${project.basedir}/src/main/resources/swagger.yaml</inputSpec>
            <generatorName>html2</generatorName>
            <output>${project.build.directory}/generated-docs</output>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

运行mvn generate-sources即可生成HTML文档。

2. Gradle集成

build.gradle中添加OpenAPI Generator任务:

plugins {
  id 'org.openapitools.codegen' version '5.2.1'
}
openApiGenerate {
  inputSpec = file("src/main/resources/swagger.yaml").toString()
  generatorName = 'html2'
  outputDir = file("build/generated-docs")
}

运行gradle openApiGenerate生成文档。

注意事项

0
看了该问题的人还看了