【问题标题】:Getting selective fields in response when making a rest call using Springboot and feign client使用 Springboot 和 feign 客户端进行休息调用时获取选择性字段作为响应
【发布时间】:2019-11-11 11:02:10
【问题描述】:

我正在尝试使用 Spring Boot 进行休息调用,特别是使用 FeignClient。我收到的实体非常大。因此,我想知道有没有一种方法可以限制我想要接收的字段,这样我就不会消耗太多的网络资源?我的限制是我不能对我请求的服务进行任何更改。我只能在我身边做出改变。

请推荐。

【问题讨论】:

    标签: java spring spring-boot feign


    【解决方案1】:

    如果您可以控制 API 代码,那么您可能会使用 GraphQL (https://dzone.com/articles/a-beginners-guide-to-graphql-with-spring-boot),以便 API 仅返回您需要的字段。但您无法更改您从 API 接收的实体客户端(除非其余 api 支持某种将返回特定主体的过滤器或参数)。

    如果您不需要整个响应正文,则可能不需要创建 java 模型来映射实体,而是可以将响应作为字符串,然后使用 JSONOBject 仅提取您需要的字段,但随后同样,这不会减少原始有效负载。

    【讨论】:

    • 我同意你所说的,因为这是我最初的想法,但后来我开始认为也许有一种方法可以相应地减少网络流量。
    【解决方案2】:

    如果您将 Jackson 用于 json,那么 jackson 有注释 @JsonIgnore 您可以使用

    【讨论】:

    • 我的实现在客户端,因此我无法访问源 API 代码,因此无法使用 @JsonIgnore 注释。
    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 2021-12-08
    • 2021-07-26
    • 2020-01-02
    • 1970-01-01
    相关资源
    最近更新 更多