restful規範簡要概述

2022-05-17 04:29:32 字數 1643 閱讀 3412

在 restful 架構概念詳解 中聊了一些概念和約束, 本篇主要簡要的聊一聊 restful api 規範概要設計, 內容源自 阮一峰老師的部落格

服務端的 api 與 client 的通訊協議,總是使用 https 協議。

使用 https 協議和 restful api 本身沒有多大關係,但是對於增加**的安全是非常重要的,特別是如果提供的是對外暴露的公開的 api,那麼 https 就會是你非常重要的選擇了。

應該盡量將api部署在專用網域名稱之下。比如:

如果確定api很簡單,不會有進一步擴充套件,可以考慮放在主網域名稱下。

一般情況下,我們將api的版本號放入url。

v1/另一種做法是,將版本號放在http頭資訊中,但不如放入url方便和直觀。github 採用這種做法。

路徑又稱」終點」(endpoint),表示api的具體**。在restful架構中,每個**代表一種資源(resource),所以**中不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的**名對應。一般來說,資料庫中的表都是同種記錄的」集合」(collection),所以api中的名詞也應該使用複數。

舉例來說,有乙個 api 提供動物園(zoo)的資訊,還包括各種動物和雇員的資訊,則它的路徑應該設計成下面這樣。

v1/zoos

v1/animals

v1/employees

根據rfc3986定義,url是大小寫敏感的,所以應該盡量使用小寫字母來命名!

對於資源的具體操作型別,由http動詞表示。常用的http動詞有下面五個(括號裡是對應的sql命令)。

下面是一些常見的引數。

伺服器向使用者返回的狀態碼和提示資訊,常見的有以下一些(方括號中是該狀態碼對應的http動詞)。

如果狀態碼是4xx,就應該向使用者返回出錯資訊。一般來說,返回的資訊中將error作為鍵名,出錯資訊作為鍵值即可。

1

23

針對不同操作,伺服器向使用者返回的結果應該符合以下規範。

比如,當使用者向api

.example

.com

的根目錄發出請求,會得到這樣乙個文件。

123

456

}

上面**表示,文件中有乙個link屬性,使用者讀取這個屬性就知道下一步該呼叫什麼api了。rel表示這個api與當前**的關係(collection關係,並給出該collection的**),href表示api的路徑,title表示api的標題,type表示返回型別。

hypermedia api的設計被稱為 hateoas。github的api就是這種設計,訪問api.github.com會得到乙個所有可用api的**列表。

123

45

從上面可以看到,如果想獲取當前使用者的資訊,應該去訪問api.github.com/user,然後就得到了下面結果。

123

4

上面**表示,伺服器給出了提示資訊,以及文件的**。

(1)api的身份認證應該使用oauth 2.0框架。

(2)伺服器返回的資料格式,應該盡量使用json,避免使用xml。

賞 謝謝你請我吃糖果

restful介面規範

資源 resource 任何東西都是一種資源,例如,一篇部落格文章 表示 representation 資源的一種表現形式,例如,json xml url 每個資源都應該有乙個對應的url uri url是uri的一種,url都有對應的資源,而uri不一定,它強調的是一種資源標識 get 獲得乙個資...

restful規範介紹

團隊之間協作有很多的介面規範,團隊做大了,平台之間的資料傳輸的規範需要定義好。需要有乙個閥,restful 就是這樣的乙個規範,我們都應該遵守這樣的乙個規範。越來越多的人意識到,即軟體,而且是一種新型的軟體 開發,完全可以採用軟體開發的模式。但是傳統上,軟體和網路是兩個不同的領域,網際網路的興起讓這...

RESTful格式規範

restful是介面開發格式裡面很重要的乙個山頭,基本開發介面都需要遵守這個規範,它共有十條規範格式 1 網域名稱,一般將api放在組網域名稱下 3 路徑,路徑表示api的具體 代表一種資源,中不能使用動詞,只能使用名詞,而其必須是複數 4 使用標準的http方法,由http動詞組成 get sel...