编写完成的接口交给前端调用时,需要为他们准备好一份接口文档。幸运的是,GoFrame
已经内置自动生成接口文档功能,节省了我们大量的时间。只需要在编写api
时携带一些额外的tag
,即可生成优美的文档。
api/users/v1/users.go
package v1
import "github.com/gogf/gf/v2/frame/g"
type RegisterReq struct {
g.Meta `path:"users/register" method:"post" sm:"注册" tags:"用户"`
Username string `json:"username" v:"required|length:3,12" dc:"用户名"`
Password string `json:"password" v:"required|length:6,16" dc:"密码"`
Email string `json:"email" v:"required|email" dc:"邮箱"`
}
type RegisterRes struct {
}
在浏览器中打开 http://127.0.0.1:8000/swagger:
另外一个地址http://127.0.0.1:8000/api.json提供了Json
格式的接口文档,可以导入到各类Api
工具中使用。
除了sm
、tags
和dc
标签外,GoFrame
还提供了如下标签:
常见OpenAPIv3标签 | 说明 | 备注 |
---|---|---|
path | 结合注册时的前缀共同构成接口URI路径 | 用于 g.Meta 标识接口元数据 |
tags | 接口所属的标签,用于接口分类 | 用于 g.Meta 标识接口元数据 |
method | 接口的请求方式: GET/PUT/POST/DELETE...(不区分大小写) | 用于 g.Meta 标识接口元数据 |
deprecated | 标记该接口废弃 | 用于 g.Meta 标识接口元数据 |
summary | 接口/参数概要描述 | 缩写 sm |
description | 接口/参数详细描述 | 缩写 dc |
in | 参数的提交方式 | header/path/query/cookie |
default | 参数的默认值 | 缩写 d |
mime | 接口的 MIME 类型,例如 multipart/form-data 一般是全局设置,默认为 application/json 。 | 用于 g.Meta 标识接口元数据 |
type | 参数的类型,一般不需要设置,特殊参数需要手动设置,例如 file | 仅用于参数属性 |