REST API设计:请求特定参数

时间:2015-09-02 13:20:26

标签: php api rest cors

我们有一个CORS REST API。它很干净。有用。它几近完美。但...

我尝试使用请求特定参数实现端点。此端点应接受POST,PUT,LINK和DELETE请求。而且我不确定如何实现这些参数。

一个例子: 用户想要删除模型。有两种情况:一种情况是模型被删除而没有其他情况发生,一种模型被删除+发送通知电子邮件。

最初我在名为" X-NOTIFY-OWNER"的标题中实现了这个参数。这是有效的,因为它可以添加到4个动作中的任何一个。但是现在我们想摆脱那个标题,因为它对这个单一终点来说太具体了。

放置此参数的最佳位置是什么?查询参数听起来最干净(因为DELETE和LINK技术上不需要正文),但应使用查询参数来过滤内容。请求体中的参数也可以工作,似乎是首选方法;但这意味着发送一个带有DELETE和LINK动作的正文......

对这种情况下的最佳做法有何看法?

3 个答案:

答案 0 :(得分:1)

我会坚持使用查询字符串,DELETE应该忽略正文并只读取URL,因此在这里使用查询字符串是有意义的。

答案 1 :(得分:1)

您应该使用URL参数。正如您所说,它们应该用于过滤输出,并且可以认为电子邮件是输出的。

答案 2 :(得分:0)

我建议为最干净的解决方案设置新的端点。

example.com/endpoint

example.com/endpointAndNotify

你可以:

  1. 设置通知端点以扩展基本端点,然后将通知逻辑添加到通知操作。

  2. 从两个操作中抽象出共享逻辑,更新每个操作以扩展基类,然后将特定通知逻辑添加到通知操作

  3. 这样两个端点都保持干净简洁,如果为此端点定义标准,则需要通知逻辑的任何其他端点都可以使用相同的标准。