当前位置: 首页 > 知识库问答 >
问题:

RESTful API URI设计

张鸿宝
2023-03-14

我正在为RESTful API寻找URI设计方面的一些方向。我将有几个嵌套的链接资源,并且目前已经设计了与本文类似的URI:分层RESTful URL设计

/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]

我的问题是:

  1. 第二个示例是有效的REST设计吗?
  2. 是否应考虑实现这两种路径?

共有1个答案

胥康安
2023-03-14

第二个例子在我看来很好。URL描述了资源,并且使用了正确的HTTP谓词。

如果有意义的话,有多个URL指向同一个资源是完全可以的。但更重要的是,确保资源包含 元素,这些元素将节目连接到网络,将剧集连接到节目等。

 类似资料:
  • design majordesignelements We designed Kafka to be able to act as a unified platform for handling all the real-time data feeds a large company might have. To do this we had to think through a fairly b

  • 设计模式 (Design pattern) 设计语言 (Design Language) UML SOA Restful API RPC 代码重构 (Code Refactor) 代码评审 (Code Review)

  • 1.1.3.为移动设备而设计 Android是为移动设备而设计的系统。Android的开发团队在设计时,会对移动设备本身的一些限制做些评估,哪些可以在可见的未来得到改善,而哪些会长期不变。比如移动设备多是使用蓄电池,而电池的续航能力可能在几年内并不能得到多大的改善。再比如,移动设备受其体积所限,它们只能拥有较少的内存,CPU的速度也要打个折扣。 在设计伊始即考虑这些限制,并将其贯彻始终。这对最终用

  • key的一个格式约定:object-type:id:field。用”:”分隔域,用”.”作为单词间的连接,如”comment:12345:reply.to“。不推荐含义不清的key和特别长的key。 一般的设计方法如下: 1: 把表名转换为key前缀 如, tag: 2: 第2段放置用于区分区key的字段—对应mysql中的主键的列名,如userid 3: 第3段放置主键值,如2,3,4…., a

  • 设计理念 Blade 的设计参考了诸多语言的Web框架,Node 的 Express, Python 的 Flask, Golang 的 Martini。 Blade 秉承 小而美、约定优于配置、低耦合、可复用、提高生产力 的设计哲学。 约定优于配置 Blade 繁多的配置选项在初始状况下都有一个明智的默认值,并会遵循一些惯例。 例如,按照惯例,模板和静态文件分别存储在 ClassPath 下面的

  • 流程 微信菜单设计 首页 分类选购 精选 鲜花 花园 超度 我 我的订单 心情 详细分类菜单 精选 蝴蝶花 2016《里》-》详情页 鲜花 四季歌 春 -》分类列表 夏 -》分类列表 秋 -》分类列表 冬 -》分类列表 花园 居所 -》分类列表 记忆 -》分类列表 记烧 -》分类列表 光音 -》分类列表 折思 -》分类列表 其他 -》分类列表 超度 佛 -》分类列表 道 -》分类列表 结论 分类最

  • 作为一个应用中的路由组件是很重要的,理所当然的路由组件是抽象的,这样允许作为开发者的我们很容易的设计出我们自定义的路由协议.然而,默认的路由组件其实已经服务得我们很好了.记住,如果我们需要一个非标准的路由协议时候,我们就可以自定义一个自己的路由协议,而不用采用默认的路由协议. 事实上,路由组件有两个部分:路由器(Yaf_Router)和路由协议(Yaf_Route_Abstract). 路由协议事

  • 传统的MVC框架大多数是基于Action设计的后缀式映射,然而,现在Web流行REST风格的架构。尽管使用Filter或者rewrite能够通过URL重写实现REST风格的URL,但是为什么不直接设计一个全新的REST风格的 MVC框架呢?本小节就是基于这种思路来讲述如何从头设计一个基于REST风格的MVC框架中的controller,最大限度地简化Web应用的开发,甚至编写一行代码就可以实现“H