Restful API

主要包含內(nèi)容

  • 協(xié)議,一般使用HTTPS
  • 域名,https://api.example.com
  • 版本(Versioning),https://api.example.com/v1/
  • 終點(diǎn)(Endpoint),表示API的具體網(wǎng)址。https://api.example.com/v1/zoos
  • HTTP動(dòng)詞
  • 過濾信息(Filtering)
  • 狀態(tài)碼(Status Codes)
  • 錯(cuò)誤處理(Error handling)
  • 返回結(jié)果,應(yīng)該盡量使用JSON
  • Hypermedia API

1. 基本要求:面向資源,使用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ù)器刪除資源。

還有兩個(gè)不常用的HTTP動(dòng)詞。

  • HEAD:獲取資源的元數(shù)據(jù)。
  • OPTIONS:獲取信息,關(guān)于資源的哪些屬性是客戶端可以改變的。

例子

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)物

過濾信息

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

2.進(jìn)階:Hypermedia API

即返回結(jié)果中提供鏈接,連向其他API方法,使得用戶不查文檔,也知道下一步應(yīng)該做什么。

例子

PUST /zoos

普通返回

{
  "zoos": "abc"
}

Hypermedia API 返回查找信息的接口:

{
  "zoos": "abc",
  "link": {
    "rel": "infomation", //rel是relationship的意思
    "url": "/zoos/info"
  }
}

即返回結(jié)果中提供鏈接,連向其他API方法

參考
https://zhuanlan.zhihu.com/p/30396391
http://www.ruanyifeng.com/blog/2014/05/restful_api.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • RESTful架構(gòu) 互聯(lián)網(wǎng)軟件:即網(wǎng)站,一種新型的軟件,采用客戶端/服務(wù)器模式,建立在分布式體系上,通過互聯(lián)網(wǎng)通信...
    零一_fb4d閱讀 342評(píng)論 0 0
  • 一、API API -- Application Programming Interface,即應(yīng)用程序編程接口。...
    han2019閱讀 560評(píng)論 0 1
  • RESTful API 概述 參考地址 RESTful架構(gòu)是一種流行的互聯(lián)網(wǎng)軟件架構(gòu),它結(jié)構(gòu)清晰,符合標(biāo)準(zhǔn),易于理...
    BlockGeeks閱讀 21,965評(píng)論 4 22
  • 文章導(dǎo)讀: 網(wǎng)絡(luò)應(yīng)用程序,分為前端和后端兩個(gè)部分。當(dāng)前的發(fā)展趨勢(shì),就是前端設(shè)備層出不窮(手機(jī)、平板、桌面電腦、其他...
    創(chuàng)造new_world閱讀 335評(píng)論 0 0
  • 一、API API -- Application Programming Interface,即應(yīng)用程序編程接口。...
    AlleniCode閱讀 503評(píng)論 0 0

友情鏈接更多精彩內(nèi)容