天天看點

REST API的一些基本概念

1. Web Service

  • 一種跨程式設計語言和跨作業系統平台的遠端調用技術;
  • 最重要的兩種實作方式:SOAP和REST;

2. SOAP

  • Simple Object Access Protocol;
  • 交換資料一種協定規範,是一種輕量的、簡單的、基于XML的協定;

3. REST

  • Representational State Transfer;
  • 一種軟體架構風格,可以降低開發的複雜性,提高系統的可伸縮性

4. REST和RESTful

  • RESTful是REST的形容詞形式;
  • RESTful API指的是REST風格的接口;

5. REST API

  • 出現:REST最早是由Roy Fielding博士發表的論文中提到;
  • 定義:REST是一種系統架構設計風格(非标準),一種分布式系統的應用層解決方案;
  • 目的:Client端和Server端進一步解耦;
  • 應用:GitHub;

6. REST支援的方法

  • HEAD:隻擷取某個資源的頭部資訊;
  • GET:擷取資源;
  • POST:建立資源;
  • PATCH:更新資源的部分屬性;
  • PUT:更新資源,用戶端需要提供資源的所有屬性;
  • DELETE:删除資源;

7. REST API接口規範

  • 協定:使用HTTPs協定,確定互動資料的傳輸安全;
  • 域名:将API部署在專用域名之下,如https://api.example.com;
  • 版本控制:将版本号放在URL或者Header中;
  • 路徑:隻能包含名詞,不能包含動詞;
  • 過濾資訊:?limit=10、?offset=10、?page=1、?sortby=name;
  • Hypermedia API:在傳回結果中提供相關資源的連結,連向其他API方法;
  • 驗證(Authentication):确定使用者是其申明的身份,比如提供賬戶的密碼;
  • 授權(Authorization):保證使用者有對請求資源特定操作的權限,比如使用者的私人資訊隻能自己能通路,其他人無法看到,有些特殊的操作隻能管理者可以操作,其他使用者隻有隻讀權限等;

8. HTTP狀态碼

REST API的一些基本概念

9. 傳回結果設計

{
    "msg":"uri_not_found",
    "code":1001,
    "request":"GET/v2/photo/132"
}
           

10. 執行個體

REST API的一些基本概念
REST API的一些基本概念

11. GitHub API參考

跟着 Github 學習 Restful HTTP API 設計

12. spring-data-rest設計風格

  • /users/{id} GET
  • /users/{id} PUT
  • /users/{id} DELETE
  • /users GET
  • /users POST
  • /users/{id}/{property} GET
  • /users/{id}/{property} DELETE
  • /users/{id}/{property}/{propertyId} GET
  • /users/{id}/{property}/{propertyId} DELETE
  • /users/search/{search} GET 自定義search
  • /users/search GET 查找所有自定義查詢