文本序列化和反序列化
- http api请求体的反序列化
- http api返回体的序列化
- 配置文件的反序列化
本文假定读者已经定义过api文件以及修改过配置文件,如不熟悉,可参照
http api请求体的反序列化的tag有三种:
path
:http url 路径中参数反序列化/order/add/1234567
会解析出来token为1234567
-
json
:http request json body反序列化,需要 header头添加 Content-Type: application/json{"productId":"321","num":1}
会解析出来productId为321,num为1
1.2 数据校验
以用户user.api文件为例
type (
createUserReq struct {
name string `json:"name"` // 名字
alias string `json:"alias,optional"` // 别名
sex string `json:"sex,options=male|female"` // 性别
avatar string `json:"avatar,default=default.png"` // 头像
}
createUserRes struct {
success bool `json:"success"` // 是否成功
}
service user {
@doc(
summary: 创建订单
@handler CreateUserHandler
post /user/add(createUserReq) returns(createUserRes)
}
age
:默认不输入为20,输入则取值范围为(12:100],前开后闭name
:必填,不可为空alias
:选填,可为空sex
:必填,取值为male
或female
avatar
:选填,默认为default.png
更多详情参见
配置文件的反序列化
和使用同一套解析规则,可参照http api请求体的反序列化