Netflix Feign @QueryMap 注解

@QueryMap 是 Netflix Feign 中的一个注解,用于将一个 Java 对象的属性以查询参数(Query Parameter)的形式添加到 HTTP 请求的 URL 中。

在进行 RESTful API 调用时,如果需要传递多个查询参数,使用这个注解可以方便地将一个对象的属性自动转换为查询参数,而不需要手动拼接 URL 字符串。这有助于保持代码的整洁性和可读性,同时减少因手动拼接参数而可能出现的错误。

应用示例

定义一个查询服务,该服务接收 id、name 和 age 查询参数,然后通过 @QueryMap 注解将 POJO 对象的属性批量传递给查询服务。步骤如下:

(1)定义 User 实体

@Data
@Builder
@ToString
public class User {
    private Long id;
    private String name;
    private Integer age;
}

(2)查询服务

@GetMapping("/query")
public User query(@RequestParam("id") Long id, @RequestParam("name") String name, @RequestParam("age") Integer age) {
    return User.builder().id(id).name(name).age(age).build();
}

(3)定义 Feign 客户端,通过 @QueryMap 将 User 查询参数的属性自动添加到 URL 的查询参数:

@RequestLine("GET /simple/query")
User query(@QueryMap User user);

(4)调用 Feign 客户端

@GetMapping("/")
public String index() {
    return SimpleFeign.createJson().query(User.builder().id(100L).name("Tom").age(20).build()).toString();
}

输出结果如下:

136cd0cf2d845c9d6ef3c68e9bb5de66_1730443254188-6e8492b6-a3cf-488e-8ad2-10065689a650.png

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号