URL 规范 整理

URL 规范

  1. 不用大写;(强制)
  2. 用中杠-不用下杠_;(强制)
  3. 参数列表要encode,编码使用utf-8;(强制)
  4. URI中的名词表示资源集合,使用复数形式。(建议)
  5. 增加版本号(建议)

URI中统一使用小写字母

根据RFC3986定义,URI是对大小写敏感的,所以为了避免歧义,我们尽量用小写字符。但主机名(Host)和scheme(协议名称:http/ftp/...)对大小写是不敏感的。

URI中尽量使用连字符"-"代替下划线"_"的使用

连字符"-"一般用来分割URI中出现的字符串(单词),来提高URI的可读性,例如:
http://api.example.restapi.org/blogs/mark-masse/entries/this-is-my-first-post

使用下划线"_"来分割字符串(单词)可能会和链接的样式冲突重叠,而影响阅读性。但实际上,"-"和"_"对URL中字符串的分割语意上还是有些差异的:"-"分割的字符串(单词)一般各自都具有独立的含义,可参见上面的例子。而"_"一般用于对一个整体含义的字符串做了层级的分割,方便阅读,例如你想在URL中体现一个ip地址的信息:210_110_25_88 .

URL增加版本号

根据项目的更新,原来的URL可能被多个项目所使用,需要兼容原有系统的情况下,支持新业务。
提供给内部系统使用的api,建议使用`/api/v1/`开头, 提供给前端APP使用的api,建议使用`/web-api/v1/`开头

/api/v1/loan
/web-api/v1/loan

资源集合 vs 单个资源

URI表示资源的两种方式:资源集合、单个资源。

资源集合:

/zoos //所有动物园
/zoos/1/animals //id为1的动物园中的所有动物


单个资源:

/zoos/1 //id为1的动物园

 

避免层级过深的URI

/在url中表达层级,用于按实体关联关系进行对象导航,一般根据id导航。

过深的导航容易导致url膨胀,不易维护,如 GET /zoos/1/areas/3/animals/4,尽量使用查询参数代替路径中的实体导航,如GET /animals?zoo=1&area=3;

 
posted @ 2017-08-07 18:59  青空feng  阅读(5911)  评论(0编辑  收藏  举报