
如何快速實(shí)現(xiàn)REST API集成以優(yōu)化業(yè)務(wù)流程
user_name: "Mohammad Faisal"
user_id: "1"
}
應(yīng)該:
{
userName: "Mohammad Faisal"
userId: "1"
}
RESTful HTTP服務(wù)必須實(shí)現(xiàn)/health和/version和/metricsAPI端點(diǎn)。他們將提供以下信息。
/health
用200 OK狀態(tài)碼響應(yīng)對(duì)/health的請求。
/version
用版本號(hào)響應(yīng)對(duì)/version的請求。
/metrics
這個(gè)端點(diǎn)將提供各種指標(biāo),如平均響應(yīng)時(shí)間。
也強(qiáng)烈推薦使用/debug和/status端點(diǎn)。
不要只使用表名作為資源名。從長遠(yuǎn)來看,這種懶惰是有害的。
不應(yīng)該:
product_order
應(yīng)該:
product-orders
這是因?yàn)楣_底層體系結(jié)構(gòu)不是你的目的。
有許多好的API設(shè)計(jì)工具用于編寫好的文檔,例如:
擁有良好而詳細(xì)的文檔可以為API使用者帶來良好的用戶體驗(yàn)。
始終對(duì)API使用版本控制,并將其向左移動(dòng),使其具有最大的作用域。版本號(hào)應(yīng)該是v1,v2等等。
應(yīng)該:http://api.domain.com/v1/shops/3/products
始終在API中使用版本控制,因?yàn)槿绻?a href="http://m.dlbhg.com/blog/api-what-is-api/">API被外部實(shí)體使用,更改端點(diǎn)可能會(huì)破壞它們的功能。
如果API返回一個(gè)對(duì)象列表,則響應(yīng)中總是包含資源的總數(shù)。你可以為此使用total屬性。
不應(yīng)該:
{
users: [
...
]
}
應(yīng)該:
{
users: [
...
],
total: 34
}
在GET操作中始終接受limit和offset參數(shù)。
應(yīng)該:
GET /shops?offset=5&limit=5
這是因?yàn)樗鼘?duì)于前端的分頁是必要的。
返回的數(shù)據(jù)量也應(yīng)該考慮在內(nèi)。添加一個(gè)fields參數(shù),只公開API中必需的字段。
例子:
只返回商店的名稱,地址和聯(lián)系方式。
GET /shops?fields=id,name,address,contact
在某些情況下,它還有助于減少響應(yīng)大小。
這是一種非常糟糕的做法,因?yàn)閡rl經(jīng)常被記錄,而身份驗(yàn)證令牌也會(huì)被不必要地記錄。
不應(yīng)該:
GET /shops/123?token=some_kind_of_authenticaiton_token
相反,通過頭部傳遞它們:
Authorization: Bearer xxxxxx, Extra yyyyy
此外,授權(quán)令牌應(yīng)該是短暫有效期的。
服務(wù)器不應(yīng)該假定內(nèi)容類型。例如,如果你接受application/x-www-form-urlencoded,那么攻擊者可以創(chuàng)建一個(gè)表單并觸發(fā)一個(gè)簡單的POST請求。
因此,始終驗(yàn)證內(nèi)容類型,如果你想使用默認(rèn)的內(nèi)容類型,請使用:
content-type: application/json
HTTP方法用于解釋CRUD功能。
GET:檢索資源的表示形式。
POST:創(chuàng)建新的資源和子資源。
PUT:更新現(xiàn)有資源。
PATCH:更新現(xiàn)有資源,它只更新提供的字段,而不更新其他字段。
DELETE:刪除已存在的資源。
以下是一些實(shí)際例子:
一定要為所有面向公共的API支持CORS(跨源資源共享)頭部。
考慮支持CORS允許的“*”來源,并通過有效的OAuth令牌強(qiáng)制授權(quán)。
避免將用戶憑證與原始驗(yàn)證相結(jié)合。
在所有端點(diǎn)、資源和服務(wù)上實(shí)施HTTPS(tls加密)。
強(qiáng)制并要求所有回調(diào)url、推送通知端點(diǎn)和webhooks使用HTTPS。
當(dāng)客戶端向服務(wù)發(fā)出無效或不正確的請求,或向服務(wù)傳遞無效或不正確的數(shù)據(jù),而服務(wù)拒絕該請求時(shí),就會(huì)出現(xiàn)錯(cuò)誤,或者更具體地說,出現(xiàn)服務(wù)錯(cuò)誤。
例子包括無效的身份驗(yàn)證憑證、不正確的參數(shù)、未知的版本id等。
如果您對(duì)API格式的決定有疑問,這些黃金規(guī)則可以幫助我們做出正確的決定。
就是這樣——如果你已經(jīng)走到了這一步,恭喜你!希望你學(xué)到了一些東西。
希望你度過美好的一天!
文章轉(zhuǎn)自微信公眾號(hào)@芋道源碼
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)