// Path: src/main/java/com/webfluxclient/metadata/request/Request.java
// public interface Request {
//     
//     HttpMethod httpMethod();
//     
//     HttpHeaders headers();
//     
//     Map<String, Object> variables();
//     
//     BodyInserter<?, ? super ClientHttpRequest> bodyInserter();
//     
//     URI expand();
// }


import com.webfluxclient.metadata.request.Request;
import lombok.AllArgsConstructor;
import org.springframework.web.reactive.function.client.ClientResponse;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
package com.webfluxclient.client;


@AllArgsConstructor
public class DefaultRequestExecutor implements RequestExecutor {
    private WebClient webClient;
    
    @Override
// Path: src/main/java/com/webfluxclient/metadata/request/Request.java
// public interface Request {
//     
//     HttpMethod httpMethod();
//     
//     HttpHeaders headers();
//     
//     Map<String, Object> variables();
//     
//     BodyInserter<?, ? super ClientHttpRequest> bodyInserter();
//     
//     URI expand();
// }


// Path: src/main/java/com/webfluxclient/client/DefaultRequestExecutor.java
import com.webfluxclient.metadata.request.Request;
import lombok.AllArgsConstructor;
import org.springframework.web.reactive.function.client.ClientResponse;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;

package com.webfluxclient.client;


@AllArgsConstructor
public class DefaultRequestExecutor implements RequestExecutor {
    private WebClient webClient;
    
    @Override
    public Mono<ClientResponse> execute(Request request) {