(二)Restful API設計指南 最佳實踐

2021-10-07 19:27:38 字數 2603 閱讀 4653

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 longhttp狀態進行響應,在這種情況下,引數也可以在方法的請求主體中傳遞post

當你的api受到外部的歡迎時,一些重大更改、公升級api,也會導致破壞現有的產品或服務。

是乙個很好的例子,該路徑中包含api的版本號。如果有重大更新,我們可以將新的api命名為v2v1.x.x

RESTful API 設計指南

網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置 因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...

RESTful API 設計指南

網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...

RESTful API 設計指南

原文 網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致 api 構架的流行,甚至出現 api first 的設計思想。restful api 是目前比較成熟的一套網際網...