如何使用自动验证restful api请求参数

发布时间:2021-10-26 11:08:08 作者:iii
来源:亿速云 阅读:122

本篇内容介绍了“如何使用自动验证restful api请求参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. http api请求体的反序列化

在反序列化的过程中的针对请求数据的数据格式以及数据校验需求,go-zero实现了自己的一套反序列化机制

1.1 数据格式以订单order.api文件为例

type (
	createOrderReq struct {
		token     string `path:"token"`     // 用户token
		productId string `json:"productId"` // 商品ID
		num       int    `json:"num"`       // 商品数量
	}
	createOrderRes struct {
		success bool `json:"success"` // 是否成功
	}
	findOrderReq struct {
		token    string `path:"token"`    // 用户token
		page     int    `form:"page"`     // 页数
		pageSize int8   `form:"pageSize"` // 页大小
	}
	findOrderRes struct {
		orderInfo []orderInfo `json:"orderInfo"` // 商品ID
	}
	orderInfo struct {
		productId   string `json:"productId"`   // 商品ID
		productName string `json:"productName"` // 商品名称
		num         int    `json:"num"`         // 商品数量
	}
	deleteOrderReq struct {
		id string `path:"id"`
	}
	deleteOrderRes struct {
		success bool `json:"success"` // 是否成功
	}
)

service order {
    @doc(
        summary: 创建订单
    )
    @handler CreateOrderHandler
    post /order/add/:token(createOrderReq) returns(createOrderRes)

    @doc(
        summary: 获取订单
    )
    @handler FindOrderHandler
    get /order/find/:token(findOrderReq) returns(findOrderRes)

    @doc(
        summary: 删除订单
    )
    @handler: DeleteOrderHandler
    delete /order/:id(deleteOrderReq) returns(deleteOrderRes)
}

http api请求体的反序列化的tag有三种:

1.2 数据校验以用户user.api文件为例

type (
	createUserReq struct {
		age    int8   `json:"age,default=20,range=(12:100]"` // 年龄
		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)
}

数据校验有很多种方式,包括以下但不限:

“如何使用自动验证restful api请求参数”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. web API接口和restful的介绍和使用
  2. 集成swagger2构建Restful API的示例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

go restful api

上一篇:为什么要使用Linux操作系统

下一篇:Linux系统及资源命令有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》