【发布时间】:2021-06-03 00:25:46
【问题描述】:
要求:
- REST Api 用户可以通过提供
List/Set/Array的 id (UUIDs) 来查询实体列表 - 端点返回
List的请求实体。如果未找到任何内容,请清空List。 - 查询的 id (
UUIDs) 数量不受限制。
我的第一个想法是在我的RestController 中使用这样的 GET 端点:
@GetMapping(path = "{ids}")
public List<FooResponseTO> getFoos(@PathVariable @NotEmpty Set<UUID> ids) {
return someService.getFoos(ids);
}
这个想法似乎不是最优的,因为 URL 长度是有限的(例如在浏览器中)。我认为最好将 id 移动到请求正文中,但对于 GET 请求不建议这样做。使用 POST 而不是 GET 似乎也是错误的,因为 GET 应该用于从指定资源请求数据,而 POST 应该用于发送数据以创建或更新资源。
设计端点以满足要求的最佳方式是什么?
【问题讨论】:
标签: java spring-boot rest spring-restcontroller