【发布时间】:2020-12-06 01:19:36
【问题描述】:
举个例子:
我想用 API 平台实现一个学生报告端点。
api/报告/学生
我有以下表格:
学生
id,
name,
address
发票
id,
description,
amount,
status,
student_id
我想使用 API 端点返回以下信息:
{
data: [
student_id: 1,
student_name: john,
outstanding_amount: 200 (Total of unpaid bill)
],
[
student_id: 2,
student_name: mike,
outstanding_amount: 300 (Total of unpaid bill)
]
}
只是想知道使用 API 平台 (https://api-platform.com) 为报告编写 API 端点的最佳做法是什么。
报表端点需要排序、连接表格和分页等。
使用 API 平台实现这一目标的最佳做法是什么?这是我们可以通过 GraphQL 实现的,还是我们需要将它与控制器操作绑定才能做到这一点?
谢谢。
【问题讨论】:
-
我认为没有任何官方的最佳实践,这可能会导致没有答案或多个基于意见的答案。请改为开始处理您的任务,并在遇到问题时提出具体问题。对您的问题的简短回答是:既可以使用 GraphQL 也可以使用 REST API,并且有多种方法可以控制您的实体的序列化方式。哪种解决方案是“最好的”完全取决于您的标准,不能一概而论。
-
有关官方最佳实践,请参阅 General Design Considerations,您的 DataProvider 的示例为 here。但是,如果您想重用现有的过滤器,请参阅我的 tutorial 的第 9 章以获取替代方案。它使用 REST,但如果您将此类操作和操作名称添加到 \App\DataProvider\DayTotalsPerEmployeeCollectionDataProvider::supports,它应该可以与 GraphQL 一起使用。
标签: php symfony api-platform.com