【问题标题】:Combine multiple REST enpoints into one将多个 REST 端点合并为一个
【发布时间】:2019-07-26 18:46:04
【问题描述】:

我正在寻找设计模式/库以将多个不同的端点组合为一个可见。

假设我有 3 个端点,每个端点都返回相同类型的对象,当然对象是不同的并且具有唯一的 id。我想创建一个端点来调用所有这些端点、合并结果、过滤和排序和分页,然后返回结果。

可以有很多对象,所以最好有缓存,只有在某些事情发生变化时才调用这三个端点(假设我知道是否需要刷新缓存)。

我想有一个库可以将多个端点连接成一个,缓存结果并提供过滤器、排序和页面。比如说,某种 Spring 存储库:但是数据不是从数据库中读取,而是从缓存中读取,缓存从 REST 端点收集它们。

我在看像Spring Gateway或者Zuul Proxy这样的Gateway设计模式,但它似乎只是一个包装器,不可能处理数据。

当然我可以手动做这些事情:

  • 创建控制器
  • 调用三个端点(如果需要刷新)
  • 填充缓存
  • 从缓存排序、过滤、分页读取数据并返回

但如果我需要多次执行此操作,我正在寻找库来执行此操作。

【问题讨论】:

    标签: rest caching spring-data netflix-zuul spring-cloud-gateway


    【解决方案1】:

    您可以在 Spring Cloud Gateway 中使用聚合和缓存来实现 GatewayFilterFactory。但它看起来像一个控制器的创建。

    【讨论】:

    • 我最终得到了自定义库。缓存在内存结构中,过滤等是通过字符串谓词完成的。 GatewayFilterFactory 看起来很有希望,但由于我现在有工作解决方案,我不会花时间检查它:)
    猜你喜欢
    • 1970-01-01
    • 2018-04-13
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多