如何指示 REST API 包含给定资源的附加数据
How to instruct REST API to include additional data for given resource
我已经实现了一个 GET 请求,如下所示:
https://api.com/invoices?filter[status]=paid&include=client
当前情况:获取状态为 'paid' 的发票并包含每个发票记录的客户数据
现在,我想指示我的 API 为每个发票记录添加额外的数据。此附加数据实际上与发票无关。 (例如客户端最后一次登录的日志记录)
Desired:这里的最佳实践是什么?我应该根据行业标准添加哪个查询参数,以指示请求包含此附加数据,因为我不想对每张发票执行查询以获取客户的最后一次登录
这个怎么样,
示例:
// 你的代码在这里
$结果; // 将由 API
发送的变量
$用户=User::all(); // 您的附加查询将包含在您的回复中 API
//附加数据示例所有用户数据
$结果['user'] = $用户;
How to instruct REST API to include additional data for given resource
拼写检查;就 REST 而言,您并不是在请求具有附加数据的给定资源,而是在请求不同的资源。这个新资源需要一个与现有资源相关的标识符并没有什么特别的原因。
What are the best practices here?
想一想您将如何处理网站。
URI 将通过向用户呈现一个表单来创建,其中包含允许客户端指定查询字符串中的值的输入元素。换句话说,表格扮演着URI Template.
的角色
因此,为了给消费者额外的控制权,您可以在表单中包含一个新的输入控件 - 它可能是一个自由文本字段,或者它可能类似于一个列表控件,它枚举了特定的可能值。
Which query param should I add according to industry standards
有两种可能性。
您可以查看 IANA Link Relations 的列表,看看是否有相近的匹配项。从技术上讲,link 关系不是查询参数。但此列表所做的是将拼写与 语义 相匹配,这正是您真正想要的:是否有对 foobar
的共同理解,您可以根据自己的需要加以利用。
另一种可能性是查看像 schema.org 这样的资源,它在拼写和语义之间也有很多有趣的映射。
我突然想到,EventStore API 使用具有不同值的 embed
来允许客户端指定它想要访问具有更丰富信息的资源;但据我所知,选择是任意的,并非基于任何真正的“行业标准”。
我已经实现了一个 GET 请求,如下所示:
https://api.com/invoices?filter[status]=paid&include=client
当前情况:获取状态为 'paid' 的发票并包含每个发票记录的客户数据
现在,我想指示我的 API 为每个发票记录添加额外的数据。此附加数据实际上与发票无关。 (例如客户端最后一次登录的日志记录)
Desired:这里的最佳实践是什么?我应该根据行业标准添加哪个查询参数,以指示请求包含此附加数据,因为我不想对每张发票执行查询以获取客户的最后一次登录
这个怎么样, 示例:
// 你的代码在这里
$结果; // 将由 API
发送的变量$用户=User::all(); // 您的附加查询将包含在您的回复中 API
//附加数据示例所有用户数据 $结果['user'] = $用户;
How to instruct REST API to include additional data for given resource
拼写检查;就 REST 而言,您并不是在请求具有附加数据的给定资源,而是在请求不同的资源。这个新资源需要一个与现有资源相关的标识符并没有什么特别的原因。
What are the best practices here?
想一想您将如何处理网站。
URI 将通过向用户呈现一个表单来创建,其中包含允许客户端指定查询字符串中的值的输入元素。换句话说,表格扮演着URI Template.
的角色因此,为了给消费者额外的控制权,您可以在表单中包含一个新的输入控件 - 它可能是一个自由文本字段,或者它可能类似于一个列表控件,它枚举了特定的可能值。
Which query param should I add according to industry standards
有两种可能性。
您可以查看 IANA Link Relations 的列表,看看是否有相近的匹配项。从技术上讲,link 关系不是查询参数。但此列表所做的是将拼写与 语义 相匹配,这正是您真正想要的:是否有对 foobar
的共同理解,您可以根据自己的需要加以利用。
另一种可能性是查看像 schema.org 这样的资源,它在拼写和语义之间也有很多有趣的映射。
我突然想到,EventStore API 使用具有不同值的 embed
来允许客户端指定它想要访问具有更丰富信息的资源;但据我所知,选择是任意的,并非基于任何真正的“行业标准”。