// Code generated by openapi-nexus. DO NOT EDIT.
//
// Empty Array Test — 1.0.0
// Test case for empty array handling
package com.example.sdk.runtime;
import java.io.IOException;
import java.util.Map;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class ApiClient {
private static final MediaType JSON = MediaType.get("application/json");
private final String baseUrl;
private final OkHttpClient client;
private final Authenticator authenticator;
private final Map<String, String> defaultHeaders;
public ApiClient(String baseUrl) {
this(baseUrl, new OkHttpClient(), null, Map.of());
}
public ApiClient(String baseUrl, OkHttpClient client, Authenticator authenticator, Map<String, String> defaultHeaders) {
this.baseUrl = baseUrl;
this.client = client;
this.authenticator = authenticator;
this.defaultHeaders = defaultHeaders;
}
public Request newRequest(String method, String path, Map<String, String> query, String body) {
String url = baseUrl.replaceAll("/+$", "") + path;
HttpUrl parsed = HttpUrl.parse(url);
if (parsed == null) {
throw new IllegalArgumentException("Invalid URL: " + url);
}
HttpUrl.Builder urlBuilder = parsed.newBuilder();
if (query != null) {
for (Map.Entry<String, String> entry : query.entrySet()) {
urlBuilder.addQueryParameter(entry.getKey(), entry.getValue());
}
}
RequestBody requestBody = null;
if (body != null) {
requestBody = RequestBody.create(body, JSON);
}
Request.Builder builder = new Request.Builder()
.url(urlBuilder.build())
.method(method, requestBody);
for (Map.Entry<String, String> entry : defaultHeaders.entrySet()) {
builder.header(entry.getKey(), entry.getValue());
}
if (authenticator != null) {
authenticator.authenticate(builder);
}
return builder.build();
}
public Response execute(Request request) throws IOException {
return client.newCall(request).execute();
}
}