猿问

系统设计:如何设计允许异步查询结果的 RESTful API

我需要构建一个/search允许某人发送 POST 的 API,并检索一个稍后可以通过单独的/resultsAPI 查询的 ID。

我看过 Spring 方法:

DeferredResult
@Async

但似乎都没有证明从搜索中返回 ID。我需要一个可以记住 ID 并在有人调用 API 检索/results特定搜索结果时引用它的系统。

是否有 Spring 应用程序执行此操作的示例


侃侃尔雅
浏览 137回答 1
1回答

翻翻过去那场雪

您必须记住 Restful 服务是无状态的,因此将搜索结果状态保存在服务器中并不是一个好习惯。一种解决方案是将搜索状态存储在数据库 (SQL/NoSQL) 上,并使用Spring Cache支持来缩短响应时间。当用户使用 请求新搜索时/search,您必须在服务器上生成 ID,准备结果并将其保存在数据库中,然后将新 ID 发送到客户端。稍后客户端必须使用请求其结果/results/{searchId}。
随时随地看视频慕课网APP

相关分类

Java
我要回答