SwaggerAPI intro
Swagger
Swagger是一套围绕OpenAPI规范构建的开源工具,可以设计·构建·编写·使用RESTAPI
- Swagger编辑器:
- Swagger UI: 将OpenAPI规范呈现为交互式API文档,并可以在浏览器中尝试API调用
- Swagger Codegen: 根据OpenAPI规范,生成服务器存根和客户端代码库
Swagger和OpenAPI区别
- OpenAPI
1
OpenAPI是一个API规范,前身是Swagger规范. Swagger是实现规范的工具
go-swagger生成Swagger API 文档
go-swagger特征
1
2
3
4
51. 根据Swagger定义文件生成服务端代码
2. 根据Swagger定义文件生成客户端代码
3. 校验Swagger定义文件是否正确
4. 启动一个HTTP服务器,使我们可以通过浏览器访问API文档
5. 根据Swagger文档定义的参数生成Go Model结构体定义Swagger工具
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36github.com/chyidl/noone via 🐹 v1.17
➜ go get -u github.com/go-swagger/go-swagger/cmd/swagger
github.com/chyidl/noone via 🐹 v1.17 took 25s
➜ swagger version
version: v0.27.0
commit: (unknown, mod sum: "h1:K7+nkBuf4oS1jTBrdvWqYFpqD69V5CN8HamZzCDDhAI=")
github.com/chyidl/go-swagger-demo via 🐹 v1.17
➜ swagger generate spec -o swagger.yaml
-o: 指定输出文件名
github.com/chyidl/go-swagger-demo via 🐹 v1.17
➜ ls
api docs go.mod main.go swagger.yaml
github.com/chyidl/go-swagger-demo via 🐹 v1.17
➜ swagger serve --no-open -F=swagger --port 36666 swagger.yaml
2021/09/09 12:58:09 serving docs at http://localhost:36666/docs
--no-open: 禁止调用浏览器打开
-F: 指定文档风格
--port: 指定启动的HTTP服务监听
github.com/chyidl/go-swagger-demo via 🐹 v1.17
➜ swagger generate spec -i ./swagger.yaml -o ./swagger.json
// swagger:route POST /users user createUserRequest
// Create a user in memory.
// responses:
// 200: createUserResponse
// default: errResponse
// swagger:route GET /users/{name} user getUserRequest
// Get a user from memory.
// responses:
// 200: getUserResponse
// default: errResponse