-1

我正在构建一个 RESTful API,其中有一个名为 solar_systems 的资源。solar_sytems 具有 id(int)、system_size(int)、system_cost(int) 列和许多其他列。

我了解 API 端点将是-

/v1/solar-systems - 适用于所有系统

/v1/solar-systems/{id} - 用于单个系统

我必须传递查询参数以进行过滤、搜索、排序等。

但是,如果我需要某种自定义数据,比如我需要每个 system_size 的平均 system_cost,那么 API 端点的最佳实践是什么。

如果我使用 - /v1/solar-systems/average-system-cost,会不会很傻?

请我根据你的经验需要你的意见。

4

2 回答 2

0

使用 /v1/solar-systems/average-system-cost 一点也不傻

人们很容易陷入这样一个事实,即从技术上讲,平均系统成本并不是一种资源。但它是一段对检索有用的数据。REST 的最终目标是使 API 易于理解和可读。获得有用数据的特定端点肯定属于其中。

于 2018-05-28T06:12:06.353 回答
0

如果我使用它会很傻/v1/solar-systems/average-system-cost吗?

REST 架构不强制执行任何 URI 设计 (请参阅下面的注释)。选择能更好地识别您的资源的 URI 完全取决于您。

但是,我可能会使用查询参数来选择要在响应中返回的字段。类似的东西/v1/solar-systems?fields=average-system-cost


注 1:在 Roy T. Fielding 的论文第 5 章中描述的 REST 架构风格定义了一组约束,遵循这种架构的应用程序必须遵循这些约束。但是,它没有说明 URL 必须是什么样的。

注 2:另一方面,Martin Fowler 撰写的一篇流行文章的示例解释了 Leonard Richardson 定义的模型,这表明URL 结构看起来友好且易于阅读。

于 2018-05-28T09:00:05.523 回答