restful api php,RestfulAPI · ThinkPHP6.0接口开发与应用及uniapp快速入门(更新完毕) · 看云...
# Restful API
>[success]`Restful API`是目前`Web API` 設計中比較流行的一種設計風格。
## Restful API
>[info]RESTful是一種軟件架構風格、設計風格,而**不是**標準,只是提供了一組設計原則和約束條件。
>[danger]對于這種風格,ThinkPHP框架和laravel框架都給了很好的支持。
### 一、常用的HTTP動詞
>[success]這種風格對于熟悉ThinkPHP框架的應該都比較熟悉。
~~~
* GET:讀取(Read)
* POST:新建(Create)
* PUT:更新(Update)
* PATCH:更新(Update),通常是部分更新
* DELETE:刪除(Delete)
~~~
>[danger]大家可能會發現,通常情況下的網絡請求主要是`POST`和`GET`。通常情況下客戶端是不支持除`GET`和`POST`之外的請求方式的。這里的解決方案就是:客戶端發出的 HTTP 請求,要加上`X-HTTP-Method-Override`屬性,來指定請求方式。
~~~http
POST /api/Person/4 HTTP/1.1
X-HTTP-Method-Override: PUT
~~~
### 二、URI與URL
#### URI
>[info]URI,統一資源標志符(Uniform Resource Identifier, URI),表示的是web上每一種可用的資源
URI通常由三部分組成:
①訪問資源的命名機制;
②存放資源的主機名;
③資源自身的名稱。
#### URL
>[danger]URL是URI的一個子集。
URL的格式由三部分組成:
①第一部分是協議(或稱為服務方式)。
②第二部分是存有該資源的主機IP地址(有時也包括端口號)
③第三部分是主機資源的具體地址,如目錄和文件名等。
### 三、端點設計
>[success]端點是指用于訪問API的URI
設計原則
1. 短小便于輸入的URI
2. 人可以讀懂的URI
3. 沒有大小寫混用的URI
4. 修改方便的URI
5. 不會暴漏服務器端架構的URI
6. 規則統一的URI
例:
|目的|端點|方法|
|-|-|-|
|獲取用戶信息列表|http://api.yifeng.com/v1/users|GET|
|新用戶注冊|http://api.yifeng.com/v1/users|POST|
|獲取特定用戶信息|http://api.yifeng.com/v1/users/:id|GET|
|更新用戶信息|http://api.yifeng.com/v1/users/:id|PUT/PATCH|
|刪除用戶信息|http://api.yifeng.com/v1/users/:id|DELETE|
### 四、HTTP狀態碼
客戶端的每一次請求,服務器都必須給出回應。回應包括 HTTP 狀態碼和數據兩部分。當然,也可以根據需求再返回一個 業務狀態碼。具體的規范可以自行設定。
HTTP 狀態碼就是一個三位數,分成五個類別。
|狀態碼|含義|
|-|-|
|1字頭|消息|
|2字頭|成功|
|3字頭|重定向|
|4字頭|客戶端原因引起的錯誤|
|5字頭|服務器端原因引起的錯誤|
主要的狀態碼
|狀態碼|名稱|含義|
|-|-|-|
|200|OK|請求成功|
|201|Created|請求成功,新資源建立|
|202|Accept|請求成功|
|204|No Content|請求成功,沒有內容|
|300|Multiple Choices|存在多個資源|
|301|Moved Permanently|資源被永轉移|
|302|Found|請求的資源被暫時轉移|
|303|See Other|引用他處|
|400|Bad Request|請求不正確|
|401|Unauthorized|需要認證|
|403|Forbidden|禁止訪問|
|404|Not Found|沒有找到指定的資源|
|429|Too Many Requests|訪問次數過多|
|500|Internal Server Error|服務器端發生錯誤|
|503||服務器暫時停止運營
>[danger]關于狀態碼這一塊大家可以到百度上去了解一下。業務狀態碼是咱們自行定義的!
### 五、服務器回應
>[success]一般情況下,服務器不要回復純文本的數據,通常情況下返回的是`XML`或`JSON`格式的數據。
>[danger] Web API其實就是網頁的一種,其返回的數據形式更容易讓計算機程序處理,而不是返回普通的HTML。所以返回的數據應該盡可能地設計得方便計算機程序處理。
>[info]在這里就使用JOSN作為返回的數據格式。
#### 數據格式返回的指定方法
1. 使用查詢參數的方法
2. 使用擴展名的方法
3. 使用在請求首部指定媒體類型的方法
>[danger]如果您的接口不需要同時支持多種類型,也可以不需要進行執定。
>[danger]在返回數據時,在滿足需求的情況下,返回的數據量越小越好。(可以讓用戶來決定返回的數據)
#### 返回數據的封裝
>[info]關于響應返回的數據格式,建義封裝成統一樣的格式。
### 六、版本號
>[success]關于版本號的,有多種解決方案。在這里使用ThinkPHP自帶的解決方案。
### 七、API接口文檔
>[success]通常情況下,API接口的開發者和使用者是不同的人群,所以做一詳細的接口文檔是十分必要的。
總結
以上是生活随笔為你收集整理的restful api php,RestfulAPI · ThinkPHP6.0接口开发与应用及uniapp快速入门(更新完毕) · 看云...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pdo oracle返回参数游标,PDO
- 下一篇: 通过gparted 调整 ubuntu