我需要实现一个 Java REST Web 服务(我们使用 Jersey 框架),它基本上可以
一个。在返回响应之前阻塞等待某个事件(或轮询事件) b. 提供某种 aysnc 行为以在处理请求时通知客户端。
我正在考虑返回一个 transationID,并有一个 /status 端点,客户端应该轮询该端点以确定请求是否已处理并获得特定结果。
有任何想法吗?
我需要实现一个 Java REST Web 服务(我们使用 Jersey 框架),它基本上可以
一个。在返回响应之前阻塞等待某个事件(或轮询事件) b. 提供某种 aysnc 行为以在处理请求时通知客户端。
我正在考虑返回一个 transationID,并有一个 /status 端点,客户端应该轮询该端点以确定请求是否已处理并获得特定结果。
有任何想法吗?
Alan,正确的做法是使用 HTTP 的 202 Accepted 返回码,并在响应正文中包含一个链接,该链接指向客户端可以轮询的页面以检查请求的状态。
在 machine2machine 上下文中,您需要为这些响应设计媒体类型(或微格式等),以便机器客户端可以“理解”它们。
见http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3
也许还为此目的查看几乎标准化的新 HTTP Link 标头。
https://datatracker.ietf.org/doc/html/draft-nottingham-http-link-header-03
简