【问题标题】:Is it a valid REST API URL?它是有效的 REST API URL 吗?
【发布时间】:2017-11-24 14:52:11
【问题描述】:

我正在实现一个 REST API,它返回一个 JSON,其中包含在一个国家/地区销售的一些商品的列表。

我在问这种 URL 是否适合使用 RESTfull 原则进行资源访问的 pourpose 和 feed:

http://XXX.YYY.ZZZ:RRR/country/1/commodities

其中 1 是国家/地区 ID。

可能是一个很好的解决方案,还是我需要改变一些东西?

【问题讨论】:

  • 这个 URI 和some-protocol://some.server.pld/djo/bah/eno 一样“RESTful”,真正的 REST 客户端并不关心 URI 是如何构建的或者它的语义是什么。客户端应该通过它在返回文档的媒体类型中的关系名称来查找返回的 URI 的含义,从而决定是否调用该 URI。其他任何东西都只是将客户端与 API 耦合起来,从而使 REST 背后的想法变得毫无意义。由于 REST 根本不是 URI 设计的潮流,任何关于 URI 设计的答案或多或少都是个人喜好
  • 不幸的是,这里的答案是:这取决于...也许?您的方法本质上没有什么不平静的地方,但这取决于商品资源将如何在您的应用程序的更大上下文中使用。

标签: rest restful-architecture restful-url


【解决方案1】:

不能将 URL 本身视为 RESTful。


按照惯例,您应该有/countries(映射国家集合)和/countries/{id}(映射具有给定标识符的单个国家/地区)。

但强制​​执行此约定不会使您的应用程序 RESTful。

【讨论】:

  • 不,我收集了与某个特定国家/地区相关的商品
  • @AndreaNobili 那时不确定您的 URL 的语义。按照惯例,您将拥有/countries(映射国家集合)和/countries/{id}(映射具有给定标识符的单个国家/地区)。
  • @AndreaNobili:我认为按照您建议的方式深入挖掘您的数据以获取相关记录是可以的。但如前所述,REST 定义中并没有关于 URL 的真正规则,除了相同的 URL 应该始终返回相同的资源和状态。也没有一个单一的最佳实践。有很多很多方法(以及很多关于它们的争论)。我认为你的方法是干净和可行的。当然,坚持一个常用的模式是好的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2018-12-11
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
相关资源
最近更新 更多