前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Resultful Url 设计原则

Resultful Url 设计原则

作者头像
收心
发布2022-01-14 09:49:48
3630
发布2022-01-14 09:49:48
举报
文章被收录于专栏:Java实战博客

什么是URL?

URI

REST API 使用统一资源标识符(URI)来寻址资源。在今天的网站上,URI 设计范围从可以清楚地传达API的资源模型,

如:http://api.example.com/louvre/leonardo-da-vinci/mona-lisa

到那些难以让人理解的,比如:http://api.example.com/68dd0-a9d3-11e0-9f1c-0800200c9a66

在深入了解规则之前,先看一下在 RFC 3986 中定义的通用 URI 语法,如下所示:URI = scheme “://” authority “/” path [“?” query] [“#” fragment]

规则

规则1:URI中不应包含尾随的斜杠(/):即,最后一位 不应该是 “/”

代码语言:javascript
复制
许多 Web 组件和框架将平等对待以下两个 URI:
http://api.canvas.com/shapes/
http://api.canvas.com/shapes
但不是所有框架都支持,可能有些会返回301 错误

规则2:正斜杠分隔符(/)必须用于指示层次关系

代码语言:javascript
复制
在 URI 的路径部分的正斜杠(/),用于表示资源之间的层次关系。

规则#3:应使用连字符( – )来提高 URI 的可读性

代码语言:javascript
复制
例如:
http://api.example.com/blogs/guy-levin/posts/this-is-my-first-post

规则4:不得在 URI 中使用下划线(_)

代码语言:javascript
复制
文本查看器(如浏览器,编辑器等)经常在 URI 下加下划线,以提供可点击的视觉提示。 根据应用程序的字体,下划线(_)字符可能被这个下划线部分地遮蔽或完全隐藏。
为避免这种混淆,请使用连字符( - )而不是下划线

规则5:URI 路径中首选小写字母

代码语言:javascript
复制
方便的话,URI 路径中首选小写字母,因为大写字母有时会导致问题。 例如:RFC 3986 中将 URI 定义为区分大小写,但协议头和域名除外。

例如:
http://api.example.com/my-folder/my-doc
HTTP://API.EXAMPLE.COM/my-folder/my-doc

在 URI 格式规范(RFC 3986)中这两个 URI 是相同的。

http://api.example.com/My-Folder/my-doc
而这个 URI 与上面的两个却是不同的。

规则 6:文件扩展名不应包含在 URI 中

代码语言:javascript
复制
在 Web 上,字符(.)通常用于分隔 URI 的文件名和扩展名。
一个 REST API 不应在 URI 中包含人造的文件扩展名,来表示消息实体的格式。 相反,他们应该通过 header 头中 Content-Type 属性的媒体类型来确定如何处理实体的内容。
http://api.college.com/students/3248234/courses/2005/fall.json
http://api.college.com/students/3248234/courses/2005/fall
不应使用文件扩展名来表示格式偏好。
应鼓励 REST API 客户端使用 HTTP 提供的格式选择机制,即请求 header 中的 Accept 属性。
为了实现简单的链接和调试的便捷,REST API 也可以通过查询参数来支持媒体类型的选择。

规则 7:端点名称是单数还是复数?

复数

特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档