goctl-swagger/README.md

84 lines
1.7 KiB
Markdown
Raw Normal View History

2021-01-01 20:30:52 +08:00
# goctl-swagger
### 1. 编译goctl-swagger插件
```
$ GO111MODULE=on GOPROXY=https://goproxy.cn/,direct go get -u github.com/zeromicro/goctl-swagger
```
### 2. 配置环境
将$GOPATH/bin中的goctl-swagger添加到环境变量
### 3. 使用姿势
* 创建api文件
```go
info(
title: "type title here"
desc: "type desc here"
author: "type author here"
email: "type email here"
version: "type version here"
)
type (
RegisterReq {
Username string `json:"username"`
Password string `json:"password"`
Mobile string `json:"mobile"`
}
LoginReq {
Username string `json:"username"`
Password string `json:"password"`
}
UserInfoReq {
Id string `path:"id"`
}
UserInfoReply {
Name string `json:"name"`
Age int `json:"age"`
Birthday string `json:"birthday"`
Description string `json:"description"`
Tag []string `json:"tag"`
}
UserSearchReq {
KeyWord string `form:"keyWord"`
}
)
service user-api {
@doc(
summary: "注册"
)
@handler register
post /api/user/register (RegisterReq)
@doc(
summary: "登录"
)
@handler login
post /api/user/login (LoginReq)
@doc(
summary: "获取用户信息"
)
@handler getUserInfo
get /api/user/:id (UserInfoReq) returns (UserInfoReply)
@doc(
summary: "用户搜索"
)
@handler searchUser
get /api/user/search (UserSearchReq) returns (UserInfoReply)
}
```
* 生成swagger.json 文件
```shell script
2021-01-01 20:32:03 +08:00
$ goctl api plugin -plugin goctl-swagger="swagger" -api user.api -dir .
2021-01-01 20:30:52 +08:00
```