色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 一行代碼實現一個RESTful接口

一行代碼實現一個RESTful接口

來源:千鋒教育
發布人:syq
時間: 2022-09-23 11:24:00 1663903440

  背景

  基于現在微服務或者服務化的思想,我們大部分的業務邏輯處理函數都是長這樣的:

  比如grpc服務端:

1

  grpc客戶端:

2

  有些服務我們需要把它包裝為RESTful形式的接口,一般需要經歷以下步驟:

  指定HTTP方法、URL

  鑒權

  參數綁定

  處理請求

  處理響應

  可以發現,參數綁定、處理響應幾乎都是一樣模板代碼,鑒權也基本上是模板代碼(當然有些鑒權可能比較復雜)。

  而Ginrest庫就是為了消除這些模板代碼,它不是一個復雜的框架,只是一個簡單的庫,輔助處理這些重復的事情,為了實現這個能力使用了Go1.18的泛型。

  特性

  這個庫提供以下特性:

  封裝RESTful請求響應

  封裝RESTful請求為標準格式服務

  封裝標準格式服務處理結果為標準RESTful響應格式:Rsp{code, msg, data}

  默認使用統一數字錯誤碼格式:[0, 4XXXX, 5XXXX]

  默認使用標準錯誤格式:Error{code, msg}

  默認統一狀態碼[200, 400, 500]

  提供Recovery中間件,統一panic時的響應格式

  提供SetKey()、GetKey()方法,用于存儲請求上下文(泛型)

  提供ReqFunc(),用于設置Req(泛型)

  使用例子

  首先我們實現兩個簡單的服務:

3

  然后使用Gin+Ginrest包裝為RESTful接口:

  可以看到Register()里面每個接口都只需要一行代碼!

4

  運行上面代碼,然后嘗試訪問接口,可以看到返回結果:

5

  實現原理

  Do()和DoOpt()都會轉發到do(),它其實是一個模板函數,把臟活累活給處理了:

6

  功能列表

  處理請求

  用于把一個標準服務封裝為一個RESTfulgin.HandlerFunc,對應Do()、DoOpt()函數。

  DoOpt()相比于Do()多了一個opts參數,因為很多rpc框架客戶端都有一個opts參數作為結尾。

  還有一個BindJSON(),用于把請求體包裝為一個Req結構體:

7

  如果無法使用Do()和DoOpt()則可以使用此方法。

  處理響應

  用于把rsp、error、errcode、errmsg等數據封裝為一個JSON格式響應體,對應ProcessRsp()、Success()、Failure()、FailureCodeMsg()函數。

  比如ProcessRsp()需要帶上rsp和error,這樣業務里面就不需要再寫如下模板代碼了:

8

  響應格式統一為:

9

  Success()用于處理成功情況:

10

  其余同理。

  如果無法使用Do()和DoOpt()則可以使用這些方法。

  處理錯誤

  一般我們都需要在出錯時帶上一個業務錯誤碼,方便客戶端處理。因此我們需要提供一個合適的error類型:

11

  我們提供了一些函數方便使用Error,對應NewError()、ToError()、ErrCode()、ErrMsg()、ErrEqual()函數。

  比如NewError()生成一個Error類型error:

12

  請求上下文操作

  Gin的請求是鏈式處理的,也就是多個handler順序的處理一個請求,比如:

13

  這個接口經歷了Verify和ginrest.Do兩個handler,其中我們在Verify的時候通過認證知道了用戶的身份信息(比如uid),我們希望把這個uid存起來,這樣可以在業務邏輯里使用。

  因此我們提供了SetKey()、GetKey()兩個函數,用于存儲請求上下文:

  比如認證通過后我們可以設置UID到上下文,然后在reqFunc()里讀取設置到req里面(下面介紹)。

14

  請求結構體處理

  上面我們設置了請求上下文,比如UID,但是其實我們并不知道具體這個UID是需要設置到req里的哪個字段,因此我們提供了一個回調函數ReqFunc(),用于設置Req:

15

  

  如果這個庫的設計不符合具體的業務,也可以按照這種思路去封裝一個類似的庫,只要盡可能的統一請求、響應的格式,就可以減少很多重復的模板代碼。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍
51精品国自产在线| 国产精品嫩草久久久久| 欧美激情一区二区三区四区| 久久精品99久久久| 欧美va亚洲va| 国产黄色精品网站| 国产成人鲁色资源国产91色综| 精品成人私密视频| 国内精品自线一区二区三区视频| 日韩视频中午一区| 国产精品一二三在| 国产精品久久99| 欧美视频你懂的| 日韩中文字幕麻豆| 国产日韩欧美精品一区| 亚洲精品一区二区精华| 国产综合久久久久久鬼色| 日韩精品一区二区三区在线观看 | 日韩欧美一区二区在线视频| 一区二区中文视频| 欧美在线你懂的| 麻豆久久久久久久| 久久综合网色—综合色88| 成人国产精品免费| 日韩综合在线视频| 国产精品视频一二| 欧美一区二区三区婷婷月色| 国产精一区二区三区| 亚洲精品videosex极品| 日韩三级中文字幕| 91传媒视频在线播放| 激情都市一区二区| 色综合色狠狠天天综合色| 亚洲h在线观看| 中文字幕欧美国产| 91免费版在线| 国模冰冰炮一区二区| 亚洲精品欧美专区| 国产精品天干天干在观线| 欧美一区二区日韩一区二区| 亚洲综合成人网| 国产精品久久久久久妇女6080| 日韩欧美在线网站| 欧美日韩激情一区二区| 色婷婷综合在线| 成人福利视频在线看| 韩国在线一区二区| 紧缚捆绑精品一区二区| 美日韩一级片在线观看| 日本不卡视频在线观看| 日韩一区精品字幕| 蜜臀91精品一区二区三区| 日产国产高清一区二区三区| 一区在线观看视频| 精品欧美久久久| 图片区小说区区亚洲影院| 亚洲嫩草精品久久| 一区二区三区四区乱视频| 国产精品午夜在线| 最近日韩中文字幕| 亚洲国产一区二区三区| 夜夜揉揉日日人人青青一国产精品| 一区在线中文字幕| 日韩欧美中文字幕一区| 欧美一区在线视频| 精品国内片67194| 国产日韩欧美亚洲| 亚洲免费观看高清完整版在线观看熊 | 91精品国产91久久久久久最新毛片| 欧美日韩亚洲综合在线 | 久久爱另类一区二区小说| 日本在线不卡一区| 国产在线精品一区在线观看麻豆| 国产精品一区二区三区网站| 国内成+人亚洲+欧美+综合在线 | 欧美在线视频日韩| 欧美三级视频在线播放| 色婷婷激情综合| 欧美精品自拍偷拍| 久久综合五月天婷婷伊人| 久久精品男人天堂av| 亚洲女人****多毛耸耸8| 日本亚洲免费观看| av网站一区二区三区| 日韩欧美在线影院| 一区二区三区美女| 国产精品一二三区在线| 欧美美女bb生活片| 国产不卡视频在线观看| 在线免费一区三区| 国产女人18毛片水真多成人如厕 | 久久久亚洲国产美女国产盗摄| 国产精品狼人久久影院观看方式| 亚洲精品视频在线看| 麻豆免费看一区二区三区| 91色.com| 国产精品三级在线观看| 日韩成人精品视频| 欧日韩精品视频| 中文字幕视频一区| 精品夜夜嗨av一区二区三区| 欧美性高清videossexo| 国产精品久久毛片a| 国产米奇在线777精品观看| 欧美军同video69gay| 亚洲日穴在线视频| 国产亚洲制服色| 日韩福利视频导航| 7777精品伊人久久久大香线蕉经典版下载| 中文字幕欧美日本乱码一线二线 | 激情久久五月天| 欧美高清视频一二三区 | 久久婷婷一区二区三区| 日日摸夜夜添夜夜添国产精品 | 一区二区三区免费网站| 一本色道**综合亚洲精品蜜桃冫| 国产视频视频一区| 国内精品国产三级国产a久久| 欧美大片顶级少妇| 久久超碰97中文字幕| 欧美电影免费观看高清完整版在 | 欧美日韩在线三级| 亚洲一二三四在线观看| 欧美三级日韩三级国产三级| 亚洲妇女屁股眼交7| 欧美日韩国产一级片| 日韩二区三区在线观看| 日韩精品专区在线影院重磅| 日本道免费精品一区二区三区| 风间由美中文字幕在线看视频国产欧美| 精品久久久久久亚洲综合网| 国产综合久久久久影院| 国产精品传媒在线| 欧美日韩国产区一| 国产伦精品一区二区三区在线观看| 久久你懂得1024| 亚洲一线二线三线久久久| 911国产精品| 99视频精品在线| 972aa.com艺术欧美| 久久久久久久精| 91丨九色丨蝌蚪富婆spa| 亚洲综合视频在线观看| 天堂资源在线中文精品| 欧美精品亚洲一区二区在线播放| 日韩av在线发布| 国产精品伦理一区二区| 欧美日韩亚洲高清一区二区| 国精产品一区一区三区mba桃花| 中文字幕一区三区| 欧美tickling挠脚心丨vk| 色综合天天综合网天天看片| 蜜臀久久久99精品久久久久久| 亚洲精品自拍动漫在线| 美女mm1313爽爽久久久蜜臀| 亚洲色图都市小说| www国产成人| 91.com视频| 日本韩国欧美在线| 九九久久精品视频| 日本欧洲一区二区| 一区二区三区**美女毛片| 国产精品久线在线观看| 久久亚洲综合色一区二区三区 | 欧美韩国日本一区| 欧美电影免费观看高清完整版在| 91传媒视频在线播放| 95精品视频在线| 99精品久久久久久| 99久久99久久精品国产片果冻| 在线不卡一区二区| 欧美综合在线视频| 欧美中文字幕一区二区三区| 91美女福利视频| 色哟哟日韩精品| 91女厕偷拍女厕偷拍高清| 91猫先生在线| 欧美手机在线视频| 欧美日韩一级片网站| 中文字幕亚洲在| 精品播放一区二区| 国产亚洲精品久| 国产精品久久久久aaaa樱花 | 欧美视频一区二区三区在线观看 | 4438成人网| 日韩欧美精品三级| 久久久一区二区三区| 国产午夜精品一区二区三区四区| 精品捆绑美女sm三区| 国产婷婷精品av在线| 国产精品国产三级国产普通话99| 亚洲色图一区二区| 91视频91自| 欧美日韩极品在线观看一区| 91精品国产综合久久精品麻豆 | jiyouzz国产精品久久| 日本乱码高清不卡字幕| 制服.丝袜.亚洲.中文.综合| 色婷婷久久一区二区三区麻豆| 欧美高清www午色夜在线视频|