符合RESTful的接口规范

  1. 把api放在专属域名下,要带版本号

  2. api的url中应该只有名词,和数据库的表或文档资源相对应;对资源(collection)的具体操作类型则由http方法动词表示

(安全性:不改变资源状态,类似只读;冪等性:执行一次或多次,对资源状态的改变等价)

取出 - 安全、冪等
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象

新建 - 不安全、不冪等
POST /collection:返回新生成的资源对象

更新 - 不安全、冪等
PUT /collection/resource:返回完整的资源对象

删除 - 不安全、冪等
DELETE /collection/resource:返回一个空文档

  1. 返回的记录数量很多时,不应一次提供给用户,api应提供参数以过滤返回结果

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

  3. 尽量用json,不用xml
    因为JSON的结构更容易映射至一般语言的数据结构

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容