《Web API 的設計與開發》讀書筆記

設計優美的Web API:

易於使用、便於更改、健壯性好、不怕公開

REST的兩層含義:

  • 指符合Fielding的REST架構風格的Web服務系統
  • 指使用符合RPC風格的XML或JSON + HTTP接口的系統(不使用SOAP)

端點的基本設計:

  • 短小便於輸入的URI-
  • 人可以讀懂的URI
  • 沒有大小寫混用的URI
  • 修改方便的URI
  • 不暴露服務端架構的URI
  • 規則統一的URI

HTTP方法和端點:

  • GET獲取資源
  • POST新增資源
  • PUT更新已有資源
  • DELETE刪除資源
  • PATCH更新部分資源

查詢參數和路徑的使用區別

  • 表示唯一資源時,放在路徑中
  • 當參數可以忽略時,放在查詢參數中

RESTful的設計級別

  • 使用HTTP
  • 引入資源的概念
  • 引入HTTP動詞
  • 引入HATEOAS

如何指定數據格式?

  • 查詢參數:url?format=xml
  • 擴展名:/url.json
  • Accept頭部字段

讓用戶決定響應的內容

  • GraphQL

通過狀態碼錶示錯誤信息

1xx:消息
2xx:成功
3xx:重定向
4xx:客戶端原因造成的錯誤
5xx:服務端原因造成的錯誤

緩存與HTTP協議規範

RFC7234:過期模型/驗證模型
過期模型:Cache-Control/Expires
驗證模型:Last-Modified/ETag
Vary首部:指定緩存單位
Conent-Type/Accept:指定媒體類型

API版本控制

  • 在URI中嵌入版本號
  • 在查詢字符串中加入版本信息
  • 通過媒體類型指定版本

API安全問題

  • 推薦使用HTTPS
  • XSS/XSRF注入漏洞
  • 返回正確的數據格式
  • 使用安全相關首部
  • 採用KVS實現訪問限制

提供API文檔

  • API Blueprint
  • API Console/Apigee
  • 提供SDK
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章