# restful api 串接 0 ###### tags: `restful api` 因為發現最近很多工作要求有必備了解**restful api 串接**想說來了解研究一下. 在之前[ajax筆記](https://hackmd.io/2xmIQCdlQwyCE5rFc-quQQ?view),那時候學到methods:‘post’,其實除了post,還有其他methods, 例如:GET、PUT、PATCH、DELETE、OPTIONS、HEAD等. 講道api資料串接、傳送、修改先提一下[Method Idempotent ( 冪等方法 )](https://developer.mozilla.org/zh-CN/docs/Glossary/Idempotent),MDN翻譯說明為: > 一個HTTP方法是冪等的,指的是同樣的請求被執行一次與連續執行多次的效果是一樣的,服務器的狀態也是一樣的。換句話說就是,冪等方法不應該具有副作用(統計用途除外)。在正確實現的條件下,GET,HEAD,PUT和DELETE 等方法都是冪等的,而 POST 方法不是。所有的safe方法也都是冪等的。 > > 冪等性只與後端服務器的實際狀態有關,而每一次請求接收到的狀態碼不一定相同。例如,第一次調用DELETE方法有可能返回200,但是後續的請求可能會返回404。DELETE 的言外之意是,開發者不應該使用 DELETE 法實現具有刪除最後條目功能的RESTful API。 > > 需要注意的是,服務器不一定會確保請求方法的冪等性,有些應用可能會錯誤地打破冪等性約束。 ### what's restful 全名是全名為 Resource Representational State Transfer,中文可以翻成 具象狀態傳輸, Resource : 資源 Representational : 像是 JSON,XML,YAML 等等...... State Transfer : 狀態傳輸。透過 HTTP 動詞實現 ( GET,POST,PUT,DELETE) 使用http特性,充分利用URI( GET,POST,PUT,DELETE)特性,設計的一種api呼叫引用規範.來做到「CRUD」(分別為 Create, Retrieve, Update, Delete英文四字首字母縮略的術語) * Create添加或建立新的聯絡人條目 * Retrieve讀取,檢索,搜尋或檢視現有條目 * Update更新或編輯現有條目 * Delete刪除現有條目 好處就是**資源和操作分離**,缺點就是資料結構太清楚要進入做CRUD變得更容易,所以更考驗身分驗證,資料加密等安全性. *參考網路資訊* > [認識 RESTful API (影片) > ](https://www.youtube.com/watch?v=gHCB0sd47Is) > > [認識 RESTful API(文件)](https://github.com/twtrubiks/django-rest-framework-tutorial/tree/master/RESTful-API-Tutorial) > > [[ Alex 宅幹嘛 ] 👨‍💻 JSON 與 RESTFUL API 串接一次搞定](https://www.youtube.com/watch?v=R8GL5y49iJc) > > [ 冪等[MDZ]](https://developer.mozilla.org/zh-CN/docs/Glossary/Idempotent)