---
# System prepended metadata

title: restful api 串接 0
tags: [restful api]

---

# 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)