【发布时间】:2015-04-26 20:22:08
【问题描述】:
我想要一个像 /car/toyota 这样的 URI,但是我不希望汽车资源映射到例如数据库表。相反,我希望car 只是用于信息检索的资源(即没有POST、PUT 或DELETE),而/car/toyota/ 会在其他地方检索该数据,比如说通过另一个提供此信息的 Web 服务器上的另一个 REST API。
这是好的设计吗?
【问题讨论】:
标签: rest http uri restful-url
我想要一个像 /car/toyota 这样的 URI,但是我不希望汽车资源映射到例如数据库表。相反,我希望car 只是用于信息检索的资源(即没有POST、PUT 或DELETE),而/car/toyota/ 会在其他地方检索该数据,比如说通过另一个提供此信息的 Web 服务器上的另一个 REST API。
这是好的设计吗?
【问题讨论】:
标签: rest http uri restful-url
这可能属于类似于https://softwareengineering.stackexchange.com/的东西
也就是说,这个问题完全取决于您发出 REST 请求的环境的基础架构。如果您有能力控制提供信息的 Web 服务器上的 REST API,那么确实没有理由将该 API 包装在另一个 API 中。所有的呼叫转移以及从一种请求格式转换为另一种请求格式的潜在必要性实际上只会增加不必要的开销。
也就是说,如果您正在访问一个无法重新格式化的 API,或者您正在访问一个您不希望客户端服务器直接与之通信的 API,那么就有一种潜在的设计优势在您自己的只读 API 中包装不同的 REST API。
不幸的是,如果没有清楚地了解整个架构和您要解决的问题,很难确定封装的 API 是否是一个好的设计。我唯一的建议是,如果可以的话,首选的方法是编辑现有的 API,但这并不总是可行的。
【讨论】: