【发布时间】:2014-05-11 09:56:24
【问题描述】:
我有一个用于创建订单的 REST api。这种行为是这样的,创建订单的人会收到一封回复说“您创建了订单 XXX”的电子邮件。这封邮件一直被触发。
api 是这样的
http://api.mytestevnt.com/ordering/orders - 以请求正文作为订单实体 json 的 POST。
现在我想为 api 调用者提供一个功能,以指示是否需要电子邮件通知。最好的方法是什么?
【问题讨论】:
我有一个用于创建订单的 REST api。这种行为是这样的,创建订单的人会收到一封回复说“您创建了订单 XXX”的电子邮件。这封邮件一直被触发。
api 是这样的
http://api.mytestevnt.com/ordering/orders - 以请求正文作为订单实体 json 的 POST。
现在我想为 api 调用者提供一个功能,以指示是否需要电子邮件通知。最好的方法是什么?
【问题讨论】:
在 POST 正文中包含 send_email=1 或 send_email=0 参数。您将提取它,然后查看用户想要做什么。
搜索“如何在 JAVA 中获取 POST 变量”。
【讨论】:
你可以这样做:
在您的 Java 请求对象中为您的 REST 服务添加一个新的 Java 属性(如 boolean emailEnabled)。
调用您的 REST 服务的客户端需要提供您在服务器端添加的参数,您也可以为其设置默认值。
【讨论】:
我认为这取决于电子邮件通知是数据还是元数据。如果它是订单的一部分,那么一定要把它添加到请求正文中。如果是元数据,您有两种选择。如果您认为会有很多元数据,您可以编辑订单以具有元数据部分,也可以单独发布元数据。如果只有有限数量的元数据,我建议使用查询参数。
除非您控制从客户端到服务器的整个路径,否则应避免使用标头,因为允许代理或负载平衡器去除非标准标头。
【讨论】: