class GetUserInfoRequest extends ApiRequest<Mono<GetUserInfoRequest.UserInfoResponse>> {

    private final String accessToken;

    @Override
    public Mono<UserInfoResponse> execute(WebClient client) {
        return doRequest(client);
    }

    private Mono<UserInfoResponse> doRequest(WebClient client) {<FILL_FUNCTION_BODY>}


    @Getter
    @Setter
    public static class UserInfoResponse extends ApiResponse {

        @JsonAlias("unionid")
        @JsonProperty
        private String unionId;

        @JsonAlias("avatar_url")
        @JsonProperty
        private String avatarUrl;

        @JsonAlias("nick")
        @JsonProperty
        private String nick;

    }
}

        return client
            .get()
            .uri("https://api.dingtalk.com/v1.0/contact/users/{unionId}", "me")
            .header("x-acs-dingtalk-access-token", accessToken)
            .retrieve()
            .bodyToMono(UserInfoResponse.class)
            .doOnNext(rep -> {
                if (rep.getUnionId() == null) {
                    throw new BusinessException(rep.getErrorMessage());
                }
            });

    
<methods>public non-sealed void <init>() ,public abstract Mono<org.jetlinks.community.notify.dingtalk.corp.request.GetUserInfoRequest.UserInfoResponse> execute(org.springframework.web.reactive.function.client.WebClient) <variables>