rest - 用户的 REST 路由资源
问题描述
我有很多资源,如产品、预订等。需要路线来按用户获取所有资源。
例如:
{GET} /bookings/user
我认为这是不正确的,因为这条路线会返回用户资源。还是我错了?
什么是正确的方法?
解决方案
我认为这是不正确的,因为这条路线会返回用户资源。还是我错了?
它返回由 标识的资源的表示/bookings/user
。那是什么资源?这取决于原始服务器。
rest不在乎您为标识符使用的拼写约定。就 REST 而言,/6414b60b-1ecb-4e28-8887-4bfe120810e7
它是一个完全令人满意的资源标识符。
如果您想要人类可读的标识符,那也没关系。 RFC 3986鼓励这种做法:
URI 通常必须被人们记住,当 URI 由有意义或熟悉的组件组成时,人们更容易记住它。
您还应该记住,RFC 3986 区分 URI 中的分层和非分层信号
URI 语法是分层组织的,组件按重要性从左到右递减的顺序列出。--第 1.2.3 节
路径组件包含通常以分层形式组织的数据,以及非分层查询组件中的数据——第 3.3 节
查询组件包含非分层数据,这些数据与路径组件(第 3.3 节)中的数据一起用于标识 URI 方案和命名权限(如果有)范围内的资源——第 3.4 节
简而言之,如果您正在描述层次结构中描述的信息,那么使用路径段很有意义
我不返回用户和用户 ID,需要返回授权用户的所有预订。
这听起来像你在描述一个拼写像/my/bookings
。
一个可能有助于 URI 设计的启发式方法是考虑相对引用的好处;与文件系统一样,您可以使用点段导航到命名空间的根目录。
`/my/bookings` + `../profile` --> `/my/profile`
您可能不希望支持hackable URI的原因;因此,您需要仔细考虑该约束及其含义。
推荐阅读
- twitter - Twitter 搜索 API 响应?
- solr - Solr:AND 查询奇怪的行为,没有正确过滤
- sql - SQL将日期时间转换为varchar
- parsing - 检测文本中对表格和图像的引用。
- javascript - 如何将字符串转换为数字并确保 JavaScript 中的浮点类型?
- java - 如何为网络通话设置同步?
- angular - 我想通过将查询参数传递给接收到的参数来路由到外部 Angular 应用程序并从中开发 url
- string - 对我的 Capstone 项目的一点帮助——将数据集从 ASCII 转换为 Python 可以读取的内容
- javascript - 猫头鹰轮播在开始时偏移
- sharepoint - 在线共享点 - Powerapp 集成