URL设计规范

0.http官方文档

十分有效率的文档:标识互联网上的内容 - HTTP | MDN (mozilla.org)

 

1. 基础url设计规范

35. URL设计规范-腾讯云开发者社区-腾讯云 (tencent.com)

URL 规范

根据上面的一些准寻的原则,我们可以设定一些项目开发中的 URL 设计规范,如下:

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

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

连字符"-"一般用来分割URL中出现的字符串(单词),来提高URL的可读性,例如:

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 单个资源

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

资源集合:

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

单个资源:

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

避免层级过深的URL

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

过深的导航容易导致url膨胀,不易维护,如 GET /zoos/1/areas/3/animals/4

尽量使用查询参数代替路径中的实体导航,如 GET /animals?zoo=1&area=3

2. url规范化 + 不规则url

URL组成:
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
协议://主机名[:端口]/ 路径/[:参数] [?查询]#Fragment

URL规范化(URL normalization) 及 不规则URL-CSDN博客

URL中的特殊字符 + % # & = ? / - 拾破烂的 - 博客园 (cnblogs.com)

你可能感兴趣的:(设计规范)