WebAPI规范

WebAPI规范

一、协议

通常使用HTTPs协议

二、域名

  1. API较简单,可将API放在主域名下,以固定prefix开头,例如:https://example.com/api/xxxx
  2. API内容丰富,复杂多样,可将API部署在专属域名下,例如:https://api.example.com/

三、版本控制

使用场景

  1. 客户端无法及时更新
    当应用客户端不能及时更新,为兼容客户端用户侧的使用,需要将接口版本化,以便不同版本的应用都能够正常使用;
  2. 提供标准的第三方接口
    当需要向第三方提供标准接口时,鉴于长远的发展,功能的迭代更新,都必须要设置API版本控制;

使用方法

使用大版本URL形式,小版本Header形式,进行版本标识

  1. URL标识形式
    大版本标识不向前兼容类型,比如方法的参数形式有了变化、方法名有了变等,不能与之前的API兼容的,采用URL标识形式,例如:http://example.com/api/v1/xxx;
  2. Header标识形式
    小版本标识向前兼容类型,比如方法添加了参数,之前的方法不影响使用,仅通过Header的标识具体小版本即可,例如:Header内部 API-VERSION:1.2.1

四、URI设计

  1. Http动词+宾语
    • GET:读取(Read)
    • POST:新建(Create)
    • PUT:更新(Update)
    • PATCH:更新(Update),通常是部分更新
    • DELETE:删除(Delete)
  2. 宾语通常采用名词复数形式
    • 例如 GET /api/articles
    • 例如 DELETE /api/articles/{id}

五、状态码

需要针对每一个Request,给出HTTP状态码的反馈,不是正确错误都是200的响应,可以内部自定义业务code来表示具体的含义。

  • 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
  • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
  • 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
  • 204 NO CONTENT - [DELETE]:用户删除数据成功。
  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
  • 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
  • 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
  • 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
  • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
  • 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
  • 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
  • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

六、结果响应

  1. 响应Content-Type
    API通常以“application/json;charset=utf-8”的形式来响应接口,牺牲了少许网络传输的效率,大大提升结果的可读性,也是业内前后端交互认可的方式。
  2. 方法响应结果规范
  • GET /collection:返回资源对象的列表(数组)
  • ​GET /collection/resource:返回单个资源对象
  • ​POST /collection:返回新生成的资源对象
  • ​PUT /collection/resource:返回完整的资源对象
  • ​PATCH /collection/resource:返回完整的资源对象
  • ​DELETE /collection/resource:返回一个空文档
参考列表
  1. RESTful API 最佳实践
  2. RESTful API 设计指南
  3. 微软Web API设计
  4. Architectural Styles and the Design of Network-based Software Architectures
  5. REST in Practice
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RESTful API是一种设计风格,用于构建可伸缩的Web服务。它基于HTTP协议,并遵循一组规范来定义资源和操作。 下面是RESTful API接口规范的要点: 1. 使用有意义的URI:URI是标识资源的唯一标识符。URI应该简洁、清晰,并且描述资源的层次结构。例如,使用"/users"来表示用户资源。 2. 使用HTTP方法进行操作:HTTP定义了一组常见的操作方法,如GET、POST、PUT和DELETE。这些方法与资源的CRUD操作相对应:获取资源、创建资源、更新资源和删除资源。 3. 使用HTTP状态码:HTTP状态码提供了关于请求处理结果的信息。常见的状态码有200(成功)、201(已创建)、400(请求无效)、404(未找到)和500(服务器错误)。在API设计中,正确使用状态码可以提供清晰的响应。 4. 使用资源表示形式(Representation):资源表示形式是以某种格式(如JSON、XML)呈现资源的方式。RESTful API通常使用JSON作为默认的资源表示形式,但也可以支持其他格式。 5. 使用版本控制:当API发生变化时,版本控制可以确保不会破坏现有客户端应用程序。可以通过在URI中添加版本号或使用自定义标头来实现版本控制。 6. 进行错误处理:对于错误情况,API应该返回适当的错误状态码和错误消息。可以使用HTTP状态码以及自定义错误代码来标识不同类型的错误。 7. 使用安全性措施:RESTful API应该使用适当的安全性措施,如身份验证、授权和加密,以保护数据和资源的安全性。 总结起来,RESTful API接口规范主要关注资源的唯一标识符、操作方法、状态码、资源表示形式、版本控制、错误处理和安全性措施。通过遵循这些规范,可以设计出易于理解、易于使用和易于扩展的Web API接口。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c_zyer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值