君子坦荡荡,小人长戚戚。——孔子

今天分享一个场景:

在对接声网rtc时,遇到一个请求,需要在delete请求中携带request body

所使用的请求框架是webfluxwebclient

如果我们正常使用delete方法来构建请求,是无法通过bodyValue传入body

但是这里我们可以直接使用:

1
2
3
4
5
6
7
8
9
10
11
12
/**
* 封禁用户权限-更新规则
* <a href="https://docportal.shengwang.cn/cn/All/rtc_channel_management_restfulapi?platform=Android#%E6%9B%B4%E6%96%B0%E8%A7%84%E5%88%99">
*/
public Mono<RtcAddDelKickRuleRes> delRtcKickRule(RtcDelKickRuleDTO dto) {
dto.setAppId(appId);
return webClient.method(HttpMethod.DELETE).uri("/dev/v1/kicking-rule")
.header(RtcRequestConst.AUTHORIZATION_KEY, getAuthorization())
.bodyValue(dto).retrieve().bodyToMono(String.class)
.map(str -> JacksonUtils.toObj(str, new TypeReference<>() {
}));
}

实现我们通过delete请求,且携带request body进行对接

注意这并不是标准的写法,建议在api设计时候不要这样设计