🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[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 } ```