restful接口设计简单规范

之前做接口的发现很多不规范的地方,后来改进了一下,记录下思路

  • url命名方式:以固定的上下文根开始,比如http://host/example/api,到api这层,后续路径尽量不要太复杂,如果后续有重新开发的可能性,应该在相应的uri段后增加版本位,如/v1,/v2等。

  • http方法:需要遵守set、get、create、delete的思路,去对应put、get、post、delete等。

  • endpoint:以访问或操作的资源命名,一般应该是名词,根据返回内容不同可以分单复数,最好小写,如

    curl -XGET http://host/example/api/persons
    

    这里应该是明确获取多个资源对象
    不应该使用类似于代码中的驼峰或帕斯卡等命名方式

    http://host/example/api/getPersonList
    

    这种写法明显不对

  • 方法补充:当通用的http方法无法满足对操作的描述时,如同一个资源可能有两种post,但是创建资源细节有一定区别,这种情况下可以补充http的url或表单参数来进行扩展,比如增加一个method参数,如

    http://host/example/api/photo
    method:upload
    http://host/example/api/photo
    method:create
    
  • 传递参数内容:返回内容还是json或者其他数据、上传内容可以是json也可以是form-data

  • 认证:token是个不错的方式,具体实现方式很多,不再解释了,也可以一次认证存在session里,适合前端访问的那种。

  • 错误信息:尽量用http status code,失败也要返回数据,返回error message。

  • 必须支持跨域访问:具体咋做,servlet和各框架的说明里都有

  • 最后一点:要有明确的api文档

猜你喜欢

转载自blog.csdn.net/xyhshen/article/details/88425361