如何组织需要 return 来自给定实体的所有标题的 API?

How to organize an API that needs to return all titles from a given entity?

我有以下端点 returns 一个实体的页面

/entity?page={page}

但是,我需要另一个端点 returns 一个包含所有实体标题的列表。我需要它,因为有一个下拉过滤器选项,用户可以按标题过滤项目,因此我必须在那里列出所有标题。

我想知道在我的 API 中组织这个的最佳实践是什么。也许就像:

/entity/titles

从基本的 REST 角度来看,我将从重组开始,我将重组以遵循更标准化的结构。在一般的 REST 思想中,资源应该用复数命名,除非在请求范围内只有其中一个。基于此,我建议这些端点

GET /entities/ -> Provides a list of all entities (index action)
GET /entities/:id -> where :id is a URL parameter indicating the ID of the page, Provides the details for a single entity (show action)

有了这个基本结构,你的问题就变得更直接了。如果 entity 的有效负载很小并且您不担心性能,我会发出 front-end 请求 GET /entities 并提取标题。

如果 entity 的负载很大,那么我建议在索引操作中添加一个可选的查询参数:

GET /entities?onlyTitles=true

当此参数为 true 时,返回的有效负载可以限定为标题。当省略或 false 时,返回的有效载荷可以是实体的完整有效载荷。