如何在不重新生成HttpGraphQlClient时为GraphQL请求添加会话ID头部?
在请求级别为HttpGraphQlClient添加头部信息(无需重新实例化)
当然可以,不需要重新创建HttpGraphQlClient实例,你完全可以在每次请求的构建阶段动态添加请求头部,比如你需要的用户独立会话ID(Session ID)。
以Spring框架中的HttpGraphQlClient为例,具体实现方式如下:
添加单个请求头部:直接使用
header()方法在请求链中指定键值对String userSessionId = "user-session-xyz123"; GraphQlResponse response = httpGraphQlClient.document("{ user { id nickname } }") .header("Session-ID", userSessionId) .retrieve() .toEntity(User.class) .block();添加多个请求头部:通过
headers()方法传入自定义逻辑,批量设置头部信息httpGraphQlClient.document("{ order { id amount } }") .headers(headers -> { headers.set("Session-ID", userSessionId); headers.set("X-User-Role", "member"); }) .retrieve() .toEntity(Order.class) .block();
这种请求级别的头部设置是独立的,每个请求都可以配置不同的参数,不会修改HttpGraphQlClient的全局配置,刚好匹配你为每个用户附加独立会话ID的需求。
内容的提问来源于stack exchange,提问作者GJoshi
相关产品推荐
相关产品推荐

