>[info]## Restful API
>[success]### 端點設計
~~~
* 短小便與輸入的URL
* 人可以讀懂的的URL
* 沒有大小寫混用的URL(一般標準的做法是全部使用小寫)
* 修改方便的URL
* 不會暴露服務器架構的URL
* 規則統一的URL
~~~
<br>
>[success]### 域名(Host)
將API部署在專用域名之下
```
http://api.yunzhongkan.com/
```
<br>
>[success]### 版本(Versioning)
應該將API的版本號放入URL。
另一種做法是,將版本號放在HTTP頭信息中,但不如放入URL方便和直觀
~~~
http://api.yunzhongkan.com/v1/
~~~
<br>
>[success]## 路徑
路徑又稱"終點"(endpoint),表示API的具體網址。
>>[danger]在RESTful架構中,每個網址代表一種資源(resource),所以網址中不能有動詞,只能有名詞,而且所用的名詞往往與數據庫的表格名對應。一般來說,數據庫中的表都是同種記錄的"集合"(collection),所以API中的名詞也應該使用復數。
<br>
>[success]## HTTP動詞
對于資源的具體操作類型,由HTTP動詞表示。
常用的HTTP動詞有下面五個(括號里是對應的SQL命令)。
~~~
> * GET(SELECT):從服務器取出資源(一項或多項)。
> * POST(CREATE):在服務器新建一個資源。
> * PUT(UPDATE):在服務器更新資源(客戶端提供改變后的完整資源)。
> * PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
> * DELETE(DELETE):從服務器刪除資源。
~~~
<br>
>[success]### 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 | | 服務器暫時停止運營 |
> 關于狀態碼這一塊大家可以到百度上去了解一下。業務狀態碼是咱們自行定義的!
<br>
>[success]## 服務輸出數據
建立統一的輸出結構,便捷前端數據獲取,增強可讀性
```
<?php
class Result {
function response(params){
///
}
}
Result::response(params)
{
'error_code':0,
'data':{
//
}
'timestamp':1583920202
}
```
- 序言
- 為什么要編碼規范?
- 如何進行編碼規范?
- 編碼規范宏觀微觀細節
- PHP編碼規范
- 基礎規范
- 1 語法規范
- 2 變量命名規范
- 3 常量命名規范
- 4 類命名規范
- 5 函數命名規范
- 6 方法命名規范
- PSR-規范
- 基本代碼規范
- Tp項目規范
- TP命名規范
- Tp目錄規范
- Tp基礎目錄構架
- Tp項目開發思考
- Tp控制器規范
- 控制器構架
- Tp模型規范
- 模型性能優化
- Tp業務規范
- 返回結構規范
- 業務異常規范
- Tp輸出規范
- Restful API
- 模板渲染輸出
- Tp異常規范
- 異常碼狀態碼
- 異常輸出方式
- Tp驗證規范
- Tp路由規范
- Tp加密規范
- Password Hashing
- Tp緩存規范
- 常見數據緩存
- 緩存設計思考
- Tp日志規范
- 日志信息
- 日志分析
- Tp日志接管分析
- Tp性能優化
- vendor包規范
- 項目自動化思考
- 項目檢測告警思考
- 項目注釋規范
- Mysql設計規范
- 序言
- 命名規范
- 表及字段規范
- 索引規范
- 索引原理
- Sql規范
- 事務規范
- 讀寫分離
- 樂觀鎖悲觀鎖
- 數據庫審計
- 性能優化
- 查詢優化神器
- 慢查詢優化步驟
- 分庫分表、分區表
- 根據sql日志篩選數據
- 設計原則
- MongoDB規范
- MongoDB基礎
- MongoDB設計
- MongoDB安全性
- MongoDB備份
- 操作手冊規范
- API文檔說明規范
- 管理端操作手冊
- 用戶使用說明書
- 溯源項目構想