有人可以指导我如何为这些特定场景构建端点吗?
TL;DR:您将如何构建一个网站来支持这些场景?这样做。
如果您使用的是文档存储之类的东西,那么您将获取 URI,例如 /feedbackReports/lastWeek,并将其用作键,然后从文档存储中提取该报告的表示形式,并将其返回给客户端(以及各种元数据)。
如果您使用的是文件系统之类的东西,那么您将获取 URI,并构造一些对文件的引用,例如 /www_root/feedbackReports/lastWeek,然后从磁盘读取该报告的表示形式,并将其返回给客户端(以及各种元数据)。
您是否正在使用关系数据库之类的东西,然后您将获取 URI,并看到正在请求“上周”报告,然后您将向其中注入一堆“-7 天”参数准备好的语句,并运行它们,然后将内存中的数据重塑为该报告的某种表示形式,并将其返回给客户端(连同各种元数据)。
我正在尝试构建一个遵循 REST 主体的 API,其中端点应定义资源和 HTTP 动词作为对这些资源采取的操作
所讨论的 REST 原则是 API 将客户端(和中间组件)与所有实现细节隔离开来。 API 是您的应用程序佩戴的面具,以便网络集成正常工作。
我的问题是为这种更具“分析性”和聚合数据构建端点,这些数据似乎并不适合我的资源中的任何地方。
所以创造更多的资源。
注意:这些是集成资源;也就是说,它们生成 Web 客户端与您的域交互所需的表示。
Jim Webber, in 2008
URIs do NOT map onto domain objects - that violates encapsulation.
Work (ex: issuing commands to the domain model) is a side effect of
managing resources. In other words, the resources are part of the
anti-corruption layer. You should expect to have many many more
resources in your integration domain than you do business objects
in your business domain.