facebook,google,github,netflix和其他一些科技巨頭給開發人員和產品提供了通過api使用其資料的機會,即使你沒有為其他開發人員和產品編寫過api,對於你的應用程式來說,擁有精心製作的api總是非常健康的。
關於設計api的最佳方法,網際網路上存在著長期的爭論,沒有為此定義過任何的官方指南。
api是乙個介面,許多開發人員可通過該介面與資料進行互動。設計良好的api總是非常易於使用,並使開發人員的工作變得非常順利。api是開發人員的gui,如果感到困惑或冗長,則會開始尋找替代方案或停止使用它。
以下是與rest api相關的最重要的術語
讓我們為有一些員工這個表來寫一些api,/getallemployees
是乙個獲取員工列表的api。關於員工的其他api 如下所示:
諸如此類的大量其他api端點將用於不同的操作。所有這些將包含許多多餘的動作。因此,當api數量增加時,所有這些api端點都將難以維護。
為什麼難以維護?
該url僅應包含資源(名詞,如employee
)而不是動作或動詞(addnew、deleteall等
)。而api路徑/addnewemployee
包含操作addnew
以及資源名稱employee
。
那正確的方法是什麼?
/companies
端點是乙個很好的示例,其中不包含任何操作。但是問題是我們如何告訴伺服器要在companies
資源上執行是否新增,刪除或更新的操作呢?
這就是http方法(get,post,delete,put)(也稱為動詞)發揮作用的地方。
該資源在api端點中應始終為複數形式,如果我們要訪問該資源的乙個例項,則可以始終在url中傳遞id。
在其他一些用例中,如果我們在某個資源下擁有資源,例如公司的員工,則api端點如下表示:
api現在不是更加精確和一致嗎?
結論:路徑應包含多種形式的資源,http方法應定義對資源執行的操作的型別。
http定義了幾套方法,這些方法指示對資源執行的操作的型別。
url是乙個句子,其中資源是名詞,而http方法是動詞。重要的http方法如下:
get
方法從資源中請求資料
例如,/companies/3/employees
返回公司3中所有員工的列表。
post
方法請求伺服器在資料庫中建立資源,通常是在提交web表單時使用
例如,/companies/3/employees
建立公司3的新雇員。
put
方法請求伺服器更新資源或建立資源(如果不存在)。
例如,/companies/3/employees/john
請求伺服器更新或建立(如果不存在)公司3下的員工中的john資源
delete
方法請求應從資料庫中刪除資源或其實例。
例如,/companies/3/employees/john/
請求伺服器從公司3下的員工集合中刪除john資源。
當客戶端通過api向伺服器提出請求時,客戶端應該知道反饋,無論是成功還是請求錯誤。http狀態**是一堆標準化**,在各種情況下都有各種說明。伺服器應始終返回正確的狀態**。
以下是http**的重要分類:
2xx(成功類別)
這些狀態**表示伺服器已接收並成功處理了請求的操作。
3xx(重定向類別)
4xx(客戶端錯誤類別)
這些狀態**表示客戶端提出了錯誤的請求。
5xx(伺服器錯誤類別)
您可以遵循任何大小寫約定,但請確保在整個應用程式中保持一致。如果請求正文或響應型別為json,則請遵循camelcase保持一致性。
所有這些操作僅是對乙個資料集的查詢。將沒有新的api集來處理這些操作。我們需要使用get方法的api附加查詢引數。
讓我們通過幾個示例來了解如何實現這些操作。
如果在get方法中新增許多查詢引數會使uri太長,則伺服器可能會以414 uri too long
http狀態進行響應,在這種情況下,引數也可以在方法的請求主體中傳遞post
。
當你的api受到外部的歡迎時,一些重大更改、公升級api,也會導致破壞現有的產品或服務。
是乙個很好的例子,該路徑中包含api的版本號。如果有重大更新,我們可以將新的api命名為
v2
或v1.x.x
RESTful API 設計指南
網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置 因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...
RESTful API 設計指南
網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...
RESTful API 設計指南
原文 網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致 api 構架的流行,甚至出現 api first 的設計思想。restful api 是目前比較成熟的一套網際網...