中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用自動驗證restful api請求參數

發布時間:2021-10-26 11:08:08 來源:億速云 閱讀:126 作者:iii 欄目:編程語言

本篇內容介紹了“如何使用自動驗證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有三種:

  • path:http url 路徑中參數反序列化

    • /order/add/1234567會解析出來token為1234567

  • form:http form表單反序列化,需要 header頭添加 Content-Type: multipart/form-data

    • /order/find/1234567?page=1&pageSize=20會解析出來token為1234567,page為1,pageSize為20

  • 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 {
		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)
}

數據校驗有很多種方式,包括以下但不限:

  • age:默認不輸入為20,輸入則取值范圍為(12:100],前開后閉

  • name:必填,不可為空

  • alias:選填,可為空

  • sex:必填,取值為malefemale

  • avatar:選填,默認為default.png

    “如何使用自動驗證restful api請求參數”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    眉山市| 大同市| 筠连县| 涿鹿县| 聊城市| 凤翔县| 法库县| 望江县| 莒南县| 大悟县| 南丰县| 浦城县| 常熟市| 满洲里市| 临城县| 普格县| 萨嘎县| 张家港市| 南雄市| 兴仁县| 望都县| 大城县| 绵竹市| 紫金县| 永仁县| 富宁县| 汕头市| 宝清县| 开原市| 游戏| 沙洋县| 宁强县| 崇文区| 冀州市| 绥滨县| 修文县| 剑川县| 西青区| 乌海市| 柳州市| 广西|