您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何使用自動(dòng)驗(yàn)證restful api請(qǐng)求參數(shù)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在反序列化的過程中的針對(duì)請(qǐng)求數(shù)據(jù)的數(shù)據(jù)格式
以及數(shù)據(jù)校驗(yàn)
需求,go-zero實(shí)現(xiàn)了自己的一套反序列化機(jī)制
數(shù)據(jù)格式
以訂單order.api文件為例type ( createOrderReq struct { token string `path:"token"` // 用戶token productId string `json:"productId"` // 商品ID num int `json:"num"` // 商品數(shù)量 } createOrderRes struct { success bool `json:"success"` // 是否成功 } findOrderReq struct { token string `path:"token"` // 用戶token page int `form:"page"` // 頁數(shù) 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"` // 商品數(shù)量 } deleteOrderReq struct { id string `path:"id"` } deleteOrderRes struct { success bool `json:"success"` // 是否成功 } ) service order { @doc( summary: 創(chuàng)建訂單 ) @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請(qǐng)求體的反序列化的tag有三種:
path
:http url 路徑中參數(shù)反序列化
/order/add/1234567
會(huì)解析出來token為1234567
form
:http form表單反序列化,需要 header頭添加 Content-Type: multipart/form-data
/order/find/1234567?page=1&pageSize=20
會(huì)解析出來token為1234567,page為1,pageSize為20
json
:http request json body反序列化,需要 header頭添加 Content-Type: application/json
{"productId":"321","num":1}
會(huì)解析出來productId為321,num為1
數(shù)據(jù)校驗(yàn)
以用戶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: 創(chuàng)建訂單 ) @handler CreateUserHandler post /user/add(createUserReq) returns(createUserRes) }
數(shù)據(jù)校驗(yàn)有很多種方式,包括以下但不限:
age
:默認(rèn)不輸入為20,輸入則取值范圍為(12:100],前開后閉
name
:必填,不可為空
alias
:選填,可為空
sex
:必填,取值為male
或female
avatar
:選填,默認(rèn)為default.png
“如何使用自動(dòng)驗(yàn)證restful api請(qǐng)求參數(shù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。