首页 > 解决方案 > 在 REST Api 中发送和立即检索响应数据的方法

问题描述

我正在尝试为我们的一个客户构建一个小型 REST API,他希望使用这种 API。这是我第一次读到这个话题。我们的大部分服务都需要相当长的时间来完全处理客户订单。为此,客户端可以通过 POST xml 数据来创建资源,并稍后通过 GETting 相应的资源来检索结果(很多)。这很简单。

现在虽然我们想创建另一个服务,它通常会几乎立即评估结果,我真的不知道如何通过最佳实践来实现它。由于可以立即处理请求,因此我想避免使用两个请求来创建和检索资源。这似乎是不必要和费力的。

另一方面,对于这个问题似乎不存在一个合适的 HTTP 请求方法,因为 POST 请求不应该响应任何响应代码,而 GET 请求应该独立于它们的主体(今天似乎可以发送GET请求的body数据,不过这似乎是不好的做法,不应该影响响应。换句话说,服务器只允许使用包含在URL中的信息)。此外,由于数据包含非常敏感的信息,因此我无法在 GET-URL 中将数据作为查询参数发送 - 我们在我国对该主题有非常严格的法律,我学会了非常小心。

实施这种响应式工具的最佳实践是什么。REST API 可能是错误的选择吗?

谢谢

标签: rest

解决方案


POST 请求不应该响应任何响应代码

这不太对。

如果是导致创建的 POST,您应该使用 HTTP 201 状态代码并包含指向新资源 URL 的 Location 标头。

此外,POST 响应可能包含具有创建对象表示的主体:restful POST 响应的“最佳”实践

所以方法 POST 就是你要找的。它创建新资源并返回正文中新创建对象的表示。

如果您的服务在创建后会修改对象,则取决于您如何处理。如果修改时间很短,可以等到对象被修改后,再返回准备使用的对象。否则,您可以返回字段不完整的对象。这两种方法都是 RESTful 的。


推荐阅读