系统设计:如何设计允许异步查询结果的 RESTful API
System Design: How can I design a RESTful API that allows querying of results asynchronously
我需要构建一个 /search
API,允许某人发送 POST,并检索一个 ID,稍后可以通过单独的 /results
API.
我看过 Spring 方法:
DeferredResult
@Async
但似乎都没有显示从搜索中返回 ID。我需要一个可以记住 ID 并在有人调用 /results
API 检索特定搜索结果时引用它的系统。
是否有任何 Spring 应用程序执行此操作的示例
您必须记住 Restful 服务是无状态的,因此将搜索结果状态保存在服务器中不是一个好习惯。
一种解决方案是将您的搜索状态存储在数据库中 (SQL/NoSQL) 并使用 Spring 缓存 支持来缩短响应时间。
当用户使用 /search
请求新搜索时,您必须在服务器上生成 ID,准备结果并将其保存在数据库中,然后将新 ID 发送到客户端。稍后客户端必须使用 /results/{searchId}
.
请求其结果
请告诉我您是否会使用这个可能的解决方案,我将在 Github
上与您分享一个示例
我需要构建一个 /search
API,允许某人发送 POST,并检索一个 ID,稍后可以通过单独的 /results
API.
我看过 Spring 方法:
DeferredResult
@Async
但似乎都没有显示从搜索中返回 ID。我需要一个可以记住 ID 并在有人调用 /results
API 检索特定搜索结果时引用它的系统。
是否有任何 Spring 应用程序执行此操作的示例
您必须记住 Restful 服务是无状态的,因此将搜索结果状态保存在服务器中不是一个好习惯。
一种解决方案是将您的搜索状态存储在数据库中 (SQL/NoSQL) 并使用 Spring 缓存 支持来缩短响应时间。
当用户使用 /search
请求新搜索时,您必须在服务器上生成 ID,准备结果并将其保存在数据库中,然后将新 ID 发送到客户端。稍后客户端必须使用 /results/{searchId}
.
请告诉我您是否会使用这个可能的解决方案,我将在 Github
上与您分享一个示例