>[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文档说明规范
- 管理端操作手册
- 用户使用说明书
- 溯源项目构想