restful Api规范

简介

写接口的开发人员一定不会对它感到陌生,概念啥的就简单介绍一下,主要梳理一下 resful 设计关键内容。resful 全称 Representational State Transfer 是一种软件设计风格。其设计的目的是为了给开发者提供一种设计理念,统一接口开发的规范。

命名规范

在 Restful 架构中,所有一切都是资源。每一个 URL 都代表着一种资源,而且大部分情况下都是名词的复数,尽量不要出现动词。
eg:

GET /issues                                      列出所有的 issue
GET /orgs/:org/issues                            列出某个项目的 issue
GET /repos/:owner/:repo/issues/:number           获取某个项目的某个 issue
POST /repos/:owner/:repo/issues                  为某个项目创建 issue
PATCH /repos/:owner/:repo/issues/:number         修改某个 issue
PUT /repos/:owner/:repo/issues/:number/lock      锁住某个 issue
DELETE /repos/:owner/:repo/issues/:number/lock   接收某个 issue

例子中的冒号表示的是变量

HTTP动词描述操作

Http 中有许多动词可以来描述用户不同的操作,常见的动词及含义如下表所示:

动词描述
GET获取资源,单个或多个
POST创建资源
PUT更新资源,客户端提供完整的资源数据
PATCH更新资源,客户端提供部分资源数据
DELETE删除资源

资源过滤

接口需要能够提供合理的参数供客户端过滤资源,eg:

?state=closed: 不同状态的资源。
?page=2&per_page=100:访问第几页数据,每页多少条。
?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

响应状态码

正确的使用状态码,可以使响应数据更加具备可读性,eg:

  • 200 OK 对成功的 GET,PUT,PATCH,DELETE 操作进行响应。
  • 201 Created 对创建新资源的 POST 操作进行响应。
  • 202 Accepted 服务器接收了请求,但是还未处理,响应中应该包含相应的指示信息,告诉客户端应该去哪里查询本次请求的信息。
  • 204 No Content 成功处理请求,但返回的响应体中不含实体的主体部分。
  • 301 Permanently Moved 永久性重定向,代表之前请求的资源地址已经发生了变化。
  • 302 Temporarily Moved 临时重定向。
  • 304 Not Modified Http 缓存header 生效时使用。
  • 400 Bad Request 请求异常,比如请求中的 body 无法解析。
  • 401 Unauthorized 没有进行认证或者认证非法。
  • 403 Forbidden 服务器已经理解请求,但是拒绝执行它。
  • 404 Not Found 请求一个不存在的资源。
  • 405 Method Not Allowed 所请求的 Http 方法不允许当前认证用户访问。
  • 410 Gone 表示当前请求的资源不再可用。当调用老版本的 API 时很有用。
  • 415 Unsupported Media Type 请求中的内容类型是错误的。
  • 422 Unprocessable Entity 用来校验错误。
  • 429 Too Many Requests 由于请求频次达到上限而被拒绝访问。
  • 500 Internal Server Error 服务器内部错误
  • 503 Service unavailable 服务器处于宕机状态
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值