国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RESTful API 設(shè)計(jì)指南

這篇具有很好參考價(jià)值的文章主要介紹了RESTful API 設(shè)計(jì)指南。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

RESTful API?是目前比較成熟的一套互聯(lián)網(wǎng)應(yīng)用程序的API設(shè)計(jì)理論

一、協(xié)議

API與用戶的通信協(xié)議,總是使用HTTPs協(xié)議。 應(yīng)用層協(xié)議

二、域名

應(yīng)該盡量將API部署在專用域名之下。并SSL 加密


https://api.example.com

三、版本(Versioning)

應(yīng)該將API的版本號(hào)放入U(xiǎn)RL。


https://api.example.com/v1/

?另一種做法是,將版本號(hào)放在HTTP頭信息中,但不如放入U(xiǎn)RL方便和直觀。Github采用這種做法。

四、路徑(Endpoint)

路徑又稱"終點(diǎn)"(endpoint),表示API的具體網(wǎng)址。 見(jiàn)名知意

在RESTful架構(gòu)中,每個(gè)網(wǎng)址代表一種資源(resource),所以網(wǎng)址中不能有動(dòng)詞,只能有名詞,而且所用的名詞往往與數(shù)據(jù)庫(kù)的表格名對(duì)應(yīng)。一般來(lái)說(shuō),數(shù)據(jù)庫(kù)中的表都是同種記錄的"集合"(collection),所以API中的名詞也應(yīng)該使用復(fù)數(shù)。

舉例來(lái)說(shuō),有一個(gè)API提供動(dòng)物園(zoo)的信息,還包括各種動(dòng)物和雇員的信息,則它的路徑應(yīng)該設(shè)計(jì)成下面這樣。

  • https://api.example.com/v1/zoos
  • https://api.example.com/v1/animals
  • https://api.example.com/v1/employees

?

五、HTTP動(dòng)詞

對(duì)于資源的具體操作類型,由HTTP動(dòng)詞表示。

常用的HTTP動(dòng)詞有下面五個(gè)(括號(hào)里是對(duì)應(yīng)的SQL命令)。

  • GET(SELECT):從服務(wù)器取出資源(一項(xiàng)或多項(xiàng))。
  • POST(CREATE):在服務(wù)器新建一個(gè)資源。
  • PUT(UPDATE):在服務(wù)器更新資源(客戶端提供改變后的完整資源)。
  • PATCH(UPDATE):在服務(wù)器更新資源(客戶端提供改變的屬性)。
  • DELETE(DELETE):從服務(wù)器刪除資源。

下面是一些例子。

  • GET /zoos:列出所有動(dòng)物園
  • POST /zoos:新建一個(gè)動(dòng)物園
  • GET /zoos/ID:獲取某個(gè)指定動(dòng)物園的信息
  • PUT /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的全部信息)
  • PATCH /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的部分信息)
  • DELETE /zoos/ID:刪除某個(gè)動(dòng)物園
  • GET /zoos/ID/animals:列出某個(gè)指定動(dòng)物園的所有動(dòng)物
  • DELETE /zoos/ID/animals/ID:刪除某個(gè)指定動(dòng)物園的指定動(dòng)物

?

六、過(guò)濾信息(Filtering)

如果記錄數(shù)量很多,服務(wù)器不可能都將它們返回給用戶。API應(yīng)該提供參數(shù),過(guò)濾返回結(jié)果。

下面是一些常見(jiàn)的參數(shù)。

  • ?limit=10:指定返回記錄的數(shù)量
  • ?offset=10:指定返回記錄的開(kāi)始位置。
  • ?page=2&per_page=100:指定第幾頁(yè),以及每頁(yè)的記錄數(shù)。
  • ?sortby=name&order=asc:指定返回結(jié)果按照哪個(gè)屬性排序,以及排序順序。
  • ?animal_type_id=1:指定篩選條件

?

參數(shù)的設(shè)計(jì)允許存在冗余,即允許API路徑和URL參數(shù)偶爾有重復(fù)。比如,GET /zoo/ID/animals 與 GET /animals?zoo_id=ID 的含義是相同的。

七、狀態(tài)碼(Status Codes)

服務(wù)器向用戶返回的狀態(tài)碼和提示信息,常見(jiàn)的有以下一些(方括號(hào)中是該狀態(tài)碼對(duì)應(yīng)的HTTP動(dòng)詞)。

  • 200 OK - [GET]:服務(wù)器成功返回用戶請(qǐng)求的數(shù)據(jù),該操作是冪等的(Idempotent)。
  • 201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數(shù)據(jù)成功。
  • 202 Accepted - [*]:表示一個(gè)請(qǐng)求已經(jīng)進(jìn)入后臺(tái)排隊(duì)(異步任務(wù))
  • 204 NO CONTENT - [DELETE]:用戶刪除數(shù)據(jù)成功。
  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發(fā)出的請(qǐng)求有錯(cuò)誤,服務(wù)器沒(méi)有進(jìn)行新建或修改數(shù)據(jù)的操作,該操作是冪等的。
  • 401 Unauthorized - [*]:表示用戶沒(méi)有權(quán)限(令牌、用戶名、密碼錯(cuò)誤)。
  • 403 Forbidden - [*] 表示用戶得到授權(quán)(與401錯(cuò)誤相對(duì)),但是訪問(wèn)是被禁止的。
  • 404 NOT FOUND - [*]:用戶發(fā)出的請(qǐng)求針對(duì)的是不存在的記錄,服務(wù)器沒(méi)有進(jìn)行操作,該操作是冪等的。
  • 406 Not Acceptable - [GET]:用戶請(qǐng)求的格式不可得(比如用戶請(qǐng)求JSON格式,但是只有XML格式)。
  • 410 Gone -[GET]:用戶請(qǐng)求的資源被永久刪除,且不會(huì)再得到的。
  • 422 Unprocesable entity - [POST/PUT/PATCH] 當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),發(fā)生一個(gè)驗(yàn)證錯(cuò)誤。
  • 500 INTERNAL SERVER ERROR - [*]:服務(wù)器發(fā)生錯(cuò)誤,用戶將無(wú)法判斷發(fā)出的請(qǐng)求是否成功。

八、錯(cuò)誤處理(Error handling)

如果狀態(tài)碼是4xx,就應(yīng)該向用戶返回出錯(cuò)信息。一般來(lái)說(shuō),返回的信息中將error作為鍵名,出錯(cuò)信息作為鍵值即可。


{
    error: "Invalid API key"
}

九、返回結(jié)果

針對(duì)不同操作,服務(wù)器向用戶返回的結(jié)果應(yīng)該符合以下規(guī)范。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-467387.html

  • GET /collection:返回資源對(duì)象的列表(數(shù)組)
  • GET /collection/resource:返回單個(gè)資源對(duì)象
  • POST /collection:返回新生成的資源對(duì)象
  • PUT /collection/resource:返回完整的資源對(duì)象
  • PATCH /collection/resource:返回完整的資源對(duì)象
  • DELETE /collection/resource:返回一個(gè)空文檔

到了這里,關(guān)于RESTful API 設(shè)計(jì)指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • # Spring MVC與RESTful API:如何設(shè)計(jì)高效的Web接口

    # Spring MVC與RESTful API:如何設(shè)計(jì)高效的Web接口

    ???? 博主貓頭虎(????)帶您 Go to New World??? ?? 博客首頁(yè) ——????貓頭虎的博客?? ?? 《面試題大全專欄》 ?? 文章圖文并茂??生動(dòng)形象??簡(jiǎn)單易學(xué)!歡迎大家來(lái)踩踩~?? ?? 《IDEA開(kāi)發(fā)秘籍專欄》 ?? 學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎(chǔ)

    2024年02月09日
    瀏覽(34)
  • python程序?qū)崿F(xiàn)一套超市自助結(jié)算系統(tǒng),實(shí)現(xiàn)顧客錄入貨品信息,系統(tǒng)顯示付款總額,以及統(tǒng)計(jì)目前的營(yíng)業(yè)總額等功能。

    ? ? ? ?? 設(shè)計(jì)一套超市自助結(jié)算系統(tǒng),實(shí)現(xiàn)顧客錄入貨品信息,系統(tǒng)顯示付款總額,以及統(tǒng)計(jì)目前的營(yíng)業(yè)總額等功能。 ????????其中貨品的基本信息包括:編號(hào)(例如001) ,名稱(例如面包) ,單價(jià)(例如9.9,保留一位有效數(shù)字)等。 ????????其中顧客的流水信息包括:流水編號(hào)

    2024年02月09日
    瀏覽(24)
  • python目前哪個(gè)版本最穩(wěn)定,python什么版本比較穩(wěn)定

    python目前哪個(gè)版本最穩(wěn)定,python什么版本比較穩(wěn)定

    大家好,本文將圍繞python目前哪個(gè)版本最穩(wěn)定展開(kāi)說(shuō)明,python什么版本比較穩(wěn)定是一個(gè)很多人都想弄明白的事情,想搞清楚python哪個(gè)版本好用2020需要先了解以下幾個(gè)事情。 大家好,小編來(lái)為大家解答以下問(wèn)題,python安裝哪個(gè)版本比較好,python一般安裝哪個(gè)版本,現(xiàn)在讓我們

    2024年01月25日
    瀏覽(22)
  • HTTP API 設(shè)計(jì)指南

    這篇指南介紹描述了 HTTP+JSON API 的一種設(shè)計(jì)模式,最初摘錄整理自 Heroku 平臺(tái)的 API 設(shè)計(jì)指引Heroku 平臺(tái) API 指引 這篇指南除了詳細(xì)介紹現(xiàn)有的 API 外,Heroku 將來(lái)新加入的內(nèi)部 API 也會(huì)符合這種設(shè)計(jì)模式,我們希望非 Heroku 員工的API設(shè)計(jì)者也能感興趣。 我們的目標(biāo)是保持一致性,

    2024年02月06日
    瀏覽(18)
  • RESTful:理解REST架構(gòu)風(fēng)格、RESTful API

    一、REST架構(gòu)風(fēng)格 REST(英文Representational State Transfer)是一種基于客戶端和服務(wù)器的架構(gòu)風(fēng)格,用于構(gòu)建可伸縮、可維護(hù)的Web服務(wù)。REST的核心思想是,將Web應(yīng)用程序的功能作為資源來(lái)表示,使用統(tǒng)一的標(biāo)識(shí)符(URI)來(lái)對(duì)這些資源進(jìn)行操作,并通過(guò)HTTP協(xié)議(GET、POST、PUT、DELET

    2024年02月07日
    瀏覽(22)
  • DSMM數(shù)據(jù)安全能力成熟度模型及配套實(shí)施指南筆記(附原文下載)

    DSMM數(shù)據(jù)安全能力成熟度模型及配套實(shí)施指南筆記(附原文下載)

    《GBT 37988-2019 信息安全技術(shù) 數(shù)據(jù)安全能力成熟度模型》和《數(shù)據(jù)安全能力建設(shè)實(shí)施指南》原文下載鏈接在文末 ???? 2020年3月1日《GBT 37988-2019 信息安全技術(shù) 數(shù)據(jù)安全能力成熟度模型》正式實(shí)施,該標(biāo)準(zhǔn)適用于對(duì)企業(yè)、組織對(duì)數(shù)據(jù)安全能力進(jìn)行評(píng)估和作為數(shù)據(jù)安全能力建設(shè)的

    2024年02月09日
    瀏覽(23)
  • RESTful API 簡(jiǎn)介

    想必使用過(guò) PHP、JSP 這一類服務(wù)器動(dòng)態(tài)頁(yè)面技術(shù)的程序員應(yīng)該都還記得,在使用這種傳統(tǒng)的動(dòng)態(tài)頁(yè)面架構(gòu)構(gòu)建應(yīng)用程序的時(shí)候,用于描述用戶界面的 HTML 頁(yè)面通常都是在服務(wù)器上完成渲染的。在這種情況下,應(yīng)用程序在客戶端的 UI 通常是很難針對(duì)用戶所使用的軟硬件環(huán)境做出

    2024年02月07日
    瀏覽(24)
  • 什么是RESTful API

    RESTful API是利用HTTP請(qǐng)求訪問(wèn)或使用數(shù)據(jù)的應(yīng)用程序接口(API)的體系結(jié)構(gòu)樣式。這些數(shù)據(jù)可用于GET,PUT,POST和DELETE數(shù)據(jù)類型,這些數(shù)據(jù)類型指的是與資源相關(guān)的操作讀取、更新、創(chuàng)建和刪除。 網(wǎng)站的API是允許兩個(gè)軟件程序相互通信的代碼。API詳細(xì)說(shuō)明了開(kāi)發(fā)人員編寫(xiě)從操作

    2024年02月16日
    瀏覽(24)
  • Restful API

    Restful API

    REST 與技術(shù)無(wú)關(guān),代表的是一種 軟件架構(gòu)風(fēng)格 ,REST是Representational State Transfer的簡(jiǎn)稱,中文翻譯為“表征狀態(tài)轉(zhuǎn)移”或“表現(xiàn)層狀態(tài)轉(zhuǎn)化”。 簡(jiǎn)單來(lái)說(shuō),REST的含義就是客戶端與Web服務(wù)器之間進(jìn)行交互的時(shí)候, 使用HTTP協(xié)議中的4個(gè)請(qǐng)求方法代表4個(gè)不同的動(dòng)作。 GET用來(lái)獲取資源

    2024年02月05日
    瀏覽(17)
  • REST 與 RESTful API

    REST是什么 REST是萬(wàn)維網(wǎng)軟件 架構(gòu)風(fēng)格 REST是一種網(wǎng)絡(luò)應(yīng)用程序的設(shè)計(jì)風(fēng)格和開(kāi)發(fā)方式,基于HTTP,可以使用 XML格式定義 或 JSON格式定義 。 REST適用于移動(dòng)互聯(lián)網(wǎng)廠商作為業(yè)務(wù)接口的場(chǎng)景,實(shí)現(xiàn)第三方OTT調(diào)用移動(dòng)網(wǎng)絡(luò)資源的功能,動(dòng)作類型為新增、變更、刪除所調(diào)用資源。 RES

    2024年02月06日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包