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狀态碼
9. 傳回結果設計
{
"msg":"uri_not_found",
"code":1001,
"request":"GET/v2/photo/132"
}
10. 執行個體
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 查找所有自定義查詢