rest - 特定子数据类别的 REST API 端点命名
问题描述
假设我有一个(与其他实体一起)处理任务的 API。我的端点看起来像
GET /api/tasks //List all tasks
POST /api/tasks //Create a new task
GET /api/task/1 //Fetch a single task
PUT /api/task/1 //Update a single Tasks
GET /api/task/1/comments //Get the comments of task 1
我还需要一些具有完全不同格式的任务数据子集:
user-tasks
,用户的任务,但根据日程安排。sync-data
, 所有需要发送到具有特殊引用的外部系统的任务
我可以看到用户数据可能存在于用户层次结构之外,例如
GET /api/user/1/tasks //tasks for this user with dedicated
但是呢sync-data
?如果这属于tasks
层次结构或它的预期系统,例如
GET /api/ExternalSystemA/tasks //tasks for synchronization
解决方案
REST 不关心您为 URI 使用的拼写约定。任何与RFC 3986中的生产规则一致的拼写都可以。
相对解析提供了一种标准化机制,用于根据上下文和相对引用计算新的 URI。在某些情况下,设计您的层次结构以便您可以利用它是一个非常好的主意。
否则,这很像选择变量名——机器不在乎,所以你只想选择其他人满意的拼写;换句话说,确保您符合当地惯例。
推荐阅读
- wordpress - WordPress add_action 错误?
- wpf - 在 ListView 控件中设置所选项目的背景颜色
- java - 货币转换器代码需要帮助。有解决办法吗?
- php - Cakephp 脚本从命令行运行良好,但不能从 cron
- python - 编写自定义字符串格式化程序
- c# - excel 发现无法读取的内容,对于通过 StreamWriter 存储的数据 file = new StreamWriter(@"Pee.xlsx", true)
- c# - 部署的 ASP.Net 应用程序不返回数据
- javascript - 我如何将 ajax alrt 自定义为模态
- javascript - 请求 API 时循环页面
- r - 我想要具有连续多个输入的 Shiny UI