【问题标题】:System Design: How can I design a RESTful API that allows querying of results asynchronously系统设计:如何设计一个允许异步查询结果的 RESTful API
【发布时间】:2019-11-26 04:33:38
【问题描述】:

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

我看过 Spring 方法:

DeferredResult

@Async

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

有没有这样的 Spring 应用程序示例

【问题讨论】:

    标签: java spring rest architecture system-design


    【解决方案1】:

    您必须记住,Restful 服务是无状态的,因此将搜索结果状态保存在服务器中不是一个好习惯。

    一种解决方案可能是将您的搜索状态存储在数据库 (SQL/NoSQL) 中并使用 Spring Cache 支持来缩短响应时间。

    当用户使用/search 请求新搜索时,您必须在服务器上生成 ID、准备结果并将其保存在数据库中,然后将新 ID 发送到客户端。稍后,客户端必须使用/results/{searchId} 请求其结果。

    如果您会使用这种可能的解决方案,请告诉我,我将在 Github

    上与您分享一个示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多