RESTful接口设计规范

RESTful接口设计规范

个人博客:RESTful接口设计规范

  • 协议:API与用户的通信协议,尽量使用HTTPS

  • 域名:尽量将API部署在专用域名下,如https://api.example.com。如果API很简单,不会有进一步的扩展,则可以放在主域名下,如https://example.com/api/

  • 版本:将API的版本号放到URL中,如https://api.example.com/v1/。或将版本号放在HTTP头信息中。

  • 路径:在RESTful架构中,每个网址代表一种资源,即网址中不能有动词,只能有名词,而且使用的名词一般和数据库的表格名对应。如https://api.example.com/v1/users

  • HTTP动词:资源的具体操作类型

    • GET(读取):从服务器读取资源
    • POST(创建):在服务器新建资源
    • PUT(完整更新):在服务器更新资源(客户端提供改变后的完整资源,包括不改变的属性)
    • PATCH(部分更新):在服务器更新资源(客户端提供改变的属性)
    • DELETE(删除):从服务器删除资源

    不常用的两个:

    • HEAD:获取资源的元数据(和GET类似,只是没有响应体)

    • OPTIONS:获取信息(关于资源的哪些属性是客户端可以改变的

    RESTful接口设计规范_第1张图片

  • 过滤信息:如果记录数量很多,API应该提供参数,过滤返回结果。

    常见参数:

    • ?limit=10:指定返回记录的数量
    • ?offset=10:指定返回记录的开始位置
    • ?page=2$per_page=50:指定第几页,以及每页的记录数
    • ?sortby=name&order=asc:指定返回结果按哪个属性排序,以及排序是升序还是降序
    • ?id=1:指定筛选条件
  • 状态码:客户端的每一次请求,服务器都应该给出响应。响应包括HTTP状态码和数据两部分

  • 返回结果:API返回的数据格式,不应该是纯文本,而应该是JSON对象,这样才可以放回标准的格式化数据。服务器回应的HTTP头部的Content-Type属性也应该设为application/json

    RESTful接口设计规范_第2张图片

  • 错误处理:状态码反应发生的错误,具体的错误信息放在数据体中

    RESTful接口设计规范_第3张图片

  • 身份认证:例如基于JWT的接口权限认证

    • 字段名:Authorization
    • 字段值:Bearer token数据
  • 跨端处理:在服务端设置CORS以允许客户端跨域资源请求

你可能感兴趣的:(后端,restful,后端,java)