我是如何根據(jù)豆瓣api來理解Restful API設(shè)計(jì)的

      網(wǎng)友投稿 927 2025-03-31

      1.什么是REST


      REST全稱是Representational State Transfer,表述狀態(tài)轉(zhuǎn)移的意思。它是在Roy Fielding博士論文首次提出。REST本身沒有創(chuàng)造新的技術(shù)、組件或服務(wù),它的理念就是在現(xiàn)有的技術(shù)之上,更好的使用現(xiàn)有的 web規(guī)范。用REST規(guī)范的web服務(wù)器,能夠更好的展現(xiàn)資源,客戶端能夠更好的使用資源。每個(gè)資源都由URI/ID標(biāo)識(shí)。REST本身跟http無關(guān),但是目前http是與它相關(guān)的唯一實(shí)例。REST有著優(yōu)雅、簡(jiǎn)潔的特性,本文是根據(jù)豆瓣api來談?wù)勛约簩?duì)restful的一些理解。

      2.URI規(guī)范

      URI(Uniform Resource Identifiers) 統(tǒng)一資源標(biāo)示符

      URL(Uniform Resource Locator) 統(tǒng)一資源定位符

      URI 的格式:

      URI的格式定義如下:?? URI?=?scheme?"://"?authority?"/"?path?[?"?"?query?]?[?"#"?fragment?]

      uri代表的是一種資源,要做到優(yōu)雅、簡(jiǎn)潔。

      最好在api地址標(biāo)明版本

      比如

      https://api.douban.com/v2

      關(guān)于分隔符“/”,比如:

      "/"分隔符一般用來對(duì)資源層級(jí)的劃分,比如: https://api.douban.com/v2/book/1220562 表述了豆瓣api,version2下的圖書倉庫下的編號(hào)為1220562的圖書。

      URI盡量使用“-”代替下劃線“_“。

      URI統(tǒng)一使用小寫字母

      URI不包含文件擴(kuò)展名

      使用?用來過濾資源,比如?limit=10 :指定返回10條記錄。

      不使用無意義的字符串、數(shù)字,要做到簡(jiǎn)潔。

      3.正確使用method

      get -只用做資源的讀取。

      post-通過用作創(chuàng)建一個(gè)新的資源。

      delete-通過用作資源的刪除。

      put -通過用作更新資源或者創(chuàng)建資源

      head-只獲取某個(gè)資源的頭部信息。

      比如 豆瓣圖書api:

      另外,在一些不符合curd的情況下,使用 post。

      把動(dòng)作轉(zhuǎn)換成資源

      比如,上述接口中,用戶某本書對(duì)外暴露的接口是”/v2/book/:id/collection”,動(dòng)作通過post方法來展現(xiàn),而不直接寫著api中,collection “”,名次,動(dòng)作直接轉(zhuǎn)換成了資源。

      4.選擇合適的狀態(tài)碼

      http請(qǐng)求需要返回狀態(tài)碼,約定俗成的狀態(tài)碼能夠幫助開發(fā)團(tuán)隊(duì)提高溝通效率。

      2xx: 請(qǐng)求正常處理并返回

      我是如何根據(jù)豆瓣api來理解Restful API設(shè)計(jì)的

      3xx: 重定向

      4xx: 客戶端請(qǐng)求有錯(cuò)誤

      5xx: 服務(wù)端請(qǐng)求有錯(cuò)誤

      比如豆瓣api返回的狀態(tài)碼說明:

      5.使用通用的錯(cuò)誤碼

      通用錯(cuò)誤碼,具體產(chǎn)品由具體產(chǎn)品api給出。比如豆瓣api:

      太多了,只列出幾條,具體見豆瓣 api。

      6. 安全

      這部分內(nèi)容不屬于這篇文章,但是稍微說明下:

      使用https

      使用jwt驗(yàn)證

      使用參數(shù)簽名,防止參數(shù)被篡改。

      使用權(quán)限驗(yàn)證,shiro ,或者自己建數(shù)據(jù)庫(用戶、角色、權(quán)限)

      7.api文檔

      接口文檔的編寫至關(guān)重要,最好是寫一個(gè)在線接口文檔。接口文檔能夠方便團(tuán)隊(duì)查閱,減少不必要的溝通。如果對(duì)外公開api,api文檔的質(zhì)量直接反應(yīng)了一個(gè)公司的技術(shù)水平,甚至一個(gè)公司的文化氣質(zhì)。

      8.參考資料

      本文參考了以下的資料:

      豆瓣api

      理解restful架構(gòu)

      restful introduction

      跟著github學(xué)習(xí)restful api設(shè)計(jì)

      REST接口設(shè)計(jì)規(guī)范

      restful api 設(shè)計(jì)指南

      https://mp.weixin.qq.com/s?__biz=MzAxNjk4ODE4OQ==&mid=2247484105&idx=1&sn=73c5f70a2c3301ed4e3170212bdc5d1b&chksm=9bed23bbac9aaaad702c60aee9282eb45a9247e6366bebc5cc4aa9af0819bd3ce80d7021c3ac&scene=21#wechat_redirect

      網(wǎng)絡(luò)安全 HTTP API

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:云遷移中的數(shù)據(jù)安全
      下一篇:為您的制造業(yè)務(wù)選擇合適的ERP軟件供應(yīng)商
      相關(guān)文章
      无码不卡亚洲成?人片| 亚洲熟妇丰满xxxxx| 国产AV日韩A∨亚洲AV电影| 亚洲人成激情在线播放| 亚洲精品国产啊女成拍色拍| 亚洲国产成人一区二区三区| 亚洲欧洲成人精品香蕉网| 亚洲深深色噜噜狠狠爱网站| 在线播放亚洲第一字幕| 亚洲乱码国产一区网址| 亚洲人成无码久久电影网站| 亚洲国产小视频精品久久久三级| 亚洲А∨精品天堂在线| 亚洲成a人片在线观看日本麻豆| 亚洲AV永久无码精品一区二区国产 | 国产午夜亚洲精品| 精品国产成人亚洲午夜福利| 亚洲色偷偷偷综合网| 亚洲欧美日韩中文无线码 | 99久久国产亚洲综合精品| 国产亚洲玖玖玖在线观看| 亚洲中文字幕一区精品自拍| 亚洲欧美国产国产综合一区| 亚洲av中文无码乱人伦在线观看| 亚洲av无码专区国产不乱码| 国产亚洲精品美女久久久久 | 亚洲av无码国产精品色在线看不卡| 亚洲国产成人爱av在线播放| 久久久久国产成人精品亚洲午夜 | 国产精品亚洲产品一区二区三区 | 91丁香亚洲综合社区| 亚洲精品女同中文字幕| 久久精品国产亚洲av品善| 亚洲 自拍 另类小说综合图区| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲国产精品不卡毛片a在线| 亚洲无线码在线一区观看| 亚洲A∨无码无在线观看| 亚洲毛片一级带毛片基地| 亚洲国产精品一区二区三区在线观看| 亚洲熟妇少妇任你躁在线观看|