在 Linux 环境下编写 Swagger 文档(通常指 OpenAPI 文档),一般有三种常见方式:
下面按“从零开始”的思路给你说明。
# 编辑文件
sudo apt install -y vim yaml-mode
# 可选:Node.js(用于 Swagger CLI / Editor)
sudo apt install -y nodejs npm
npm install -g swagger-cli
校验:
swagger-cli --version
mkdir swagger-demo
cd swagger-demo
vim swagger.yaml
openapi: 3.0.3
info:
title: User API
version: 1.0.0
description: Linux 下编写的 Swagger 文档示例
servers:
- url: http://localhost:8080
paths:
/users:
get:
summary: 获取用户列表
responses:
'200':
description: 成功
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
/users/{id}:
get:
summary: 根据 ID 获取用户
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: 成功
swagger-cli validate swagger.yaml
输出:
swagger.yaml is valid
docker run -d -p 8081:8080 swaggerapi/swagger-editor
浏览器访问:
http://localhost:8081
docker run -d -p 8082:8080 swaggerapi/swagger-ui
访问:
http://localhost:8082
@Operation(summary = "获取用户")
@GetMapping("/users")
public List<User> getUsers() {
return userService.list();
}
依赖:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>
访问:
http://localhost:8080/swagger-ui.html
from fastapi import FastAPI
app = FastAPI()
@app.get("/users")
def get_users():
return [{"id": 1, "name": "Tom"}]
自动生成:
http://localhost:8000/docs
vim 写 swagger.yamlswagger-cli validate 校验如果你愿意,可以告诉我:
我可以直接给你一份可运行的完整示例。