Skip to content

Restful 接口规范

1.url 接口语法

url通用接口如下: URI = scheme"://"host:port"/"path["?"query]["#"fragment]

  • scheme: 指底层用的协议,如http、https、ftp
  • host: 服务器的IP地址或者域名
  • port: 端口,http中默认80
  • path: 访问资源的路径,就是咱们各种web 框架中定义的route路由
  • query: 为发送给服务器的参数
  • fragment: 锚点,定位到页面的资源,锚点为资源id

2.api 设计

1.url 的定义

  • URL 中不能有动词
  • URL 结尾不应该包含斜杠 "/"
  • 正斜杠分隔符 "/" 必须用来指示层级关系
  • 应该使用连字符 "-" 来提高 URL 的可读性, 而不是使用下划线 "_"
  • URL 路径中首选小写字母
  • URL 路径名词均为复数

2.api对资源的操作

  • CRUD 操作

    操作解释
    GET获取资源
    POST新建资源
    PUT在服务器更新资源(向客户端提供改变后的所有资源)
    PATCH在服务器更新资源(向客户端提供改变的属性)
    DELETE删除资源
  • 资源过滤, 在获取资源的时候,有可能需要获取某些“过滤”后的资源,例如指定前10行数据

http
http://api.user.com/schools/grades/classes/boys?page=1&page-size=10
  • 返回状态码(推荐标准HTTP状态码)

    有很多服务器将返回状态码一直设为 200, 然后在返回 body 里面自定义一些状态码来表示服务器返回结果的状态码, 由于 rest api 是直接使用的 HTTP 协议, 所以它的状态码也要尽量使用HTTP协议的状态码

  • 返回结果

    操作结果
    GET/collections返回资源列表
    GET/collections/:id返回单独的资源
    POST/collections返回新生成的资源对象
    PUT/collections/:id返回完整的资源对象
    PATCH/collections/:id返回被修改的属性
    DELETE/collections/:id返回一个空文档