首页 > 解决方案 > REST API 设计以获取摘要和详细信息

问题描述

我有 2 个 UI 屏幕。第一个 UI 屏幕仅显示高级摘要,例如班级、班级学生人数。

我有详细信息屏幕,显示更多信息,如班级、学生人数、班级学生信息等。

设计此类 API 以通过 UI 消费的最佳实践是什么 - 我可以将其称为 /summary、/details API 吗?或遵循 REST 约定并将其称为 /class ( GET class details ) 并传递适当的过滤器以接收摘要与详细信息,即 /class?filter=summary|details

请指教。

标签: restapiapi-design

解决方案


这两种方法都可以作为 REST 端点。

是的,通常拥有描述特定事物的细粒度资源,但创建针对特定用例进行优化的自定义端点也是可以接受的。

事实上,如果您遵循 REST 的原始学术思想而不是对 REST 是什么的普遍理解,那么具有所有相关状态并描述用户可以从该状态执行的所有可能操作的单个端点可能被认为更 RESTful。

从纯粹的架构角度来看,如果您有许多专门的端点而不是几个通用端点,那么风险可能会更高。可能会导致 API 更改频率更高,更多代码可能意味着更多风险。你的旅费可能会改变。

Tl; dr:两者都可能很好并且有成本/收益。


推荐阅读