【发布时间】:2012-10-23 20:45:03
【问题描述】:
我正在寻找有关 RESTful API 的 URI 设计的方向。我将有几个嵌套的链接资源,目前我设计的 URI 类似于这篇文章:Hierarchical RESTful URL design
以下示例不是我正在构建的示例,但我认为很好地说明了我的情况。 (假设一个节目只能属于一个网络)。
/networks [GET,POST]
/networks/{network_id} [GET,PUT]
/networks/{network_id}/shows [GET,POST]
/networks/{network_id}/shows/{show_id} [GET,PUT]
/networks/{network_id}/shows/{show_id}/episodes [GET,POST]
/networks/{network_id}/shows/{show_id}/episodes/{episode_id} [GET,PUT]
我的情况将通过关联进一步发展两个层次,但所有关联都是一对多的。我正在考虑将其切换为类似于以下内容:
/networks [GET,POST]
/networks/{network_id} [GET,PUT]
/networks/{network_id}/shows [GET,POST]
/shows [GET]
/shows/{id} [GET,PUT]
/shows/{id}/episodes [GET,POST]
/episodes [GET]
/episodes/{id} [GET,PUT]
我的问题是:
- 第二个示例是有效的 REST 设计吗?
- 我应该考虑同时实现这两条路径吗?
【问题讨论】:
-
请记住,您最终决定了 RESTful API 的结构。将使用它的是您的客户。我认为两者都很好,尽管显然第一个更擅长说明网络、节目和剧集之间的层次结构。但是,如果 URI 变得异常长,那么将这些实体分离到 / 下也不是很疯狂。我会问自己,实际上哪些资源会被使用得最多。如果是剧集和节目,那么将它们放在基础之下很有意义。
标签: rest uri restful-url restful-architecture