fumadocs-openapi
Version:
Generate MDX docs for your OpenAPI spec
58 lines (55 loc) • 2.19 kB
JavaScript
'use client';
import { ident } from "../string-utils.js";
import { resolveMediaAdapter } from "../media/resolve-adapter.js";
import "../media/adapter.js";
//#region src/requests/generators/java.ts
const generator = (url, data, { mediaAdapters }) => {
const s = [];
const headers = { ...data.header };
const imports = new Set([
"java.net.URI",
"java.net.http.HttpClient",
"java.net.http.HttpRequest",
"java.net.http.HttpResponse",
"java.net.http.HttpResponse.BodyHandlers",
"java.time.Duration"
]);
let body;
if (data.body && data.bodyMediaType) body = resolveMediaAdapter(data.bodyMediaType, mediaAdapters)?.generateExample(data, {
lang: "java",
addImport(specifier) {
imports.add(specifier);
}
});
for (const value of imports.values()) s.push(`import ${value};`);
s.push("");
if (body) s.push(body);
s.push("HttpClient client = HttpClient.newBuilder()");
s.push(ident(".connectTimeout(Duration.ofSeconds(10))"));
s.push(ident(".build();"));
s.push("");
s.push("HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()");
s.push(ident(`.uri(URI.create(${JSON.stringify(url)}))`));
for (const [key, param] of Object.entries(headers)) s.push(ident(`.header(${JSON.stringify(key)}, ${JSON.stringify(param.value)})`));
if (data.bodyMediaType) s.push(ident(`.header("Content-Type", "${data.bodyMediaType}")`));
const cookies = Object.entries(data.cookie);
if (cookies.length > 0) {
const cookieString = cookies.map(([key, param]) => `${key}=${param.value}`).join("; ");
s.push(ident(`.header("Cookie", ${JSON.stringify(cookieString)})`));
}
const arg = body ? "body" : "";
s.push(ident(`.${data.method.toUpperCase()}(${arg})`));
s.push(ident(".build();"));
s.push("");
s.push("try {");
s.push(ident("HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());"));
s.push(ident("System.out.println(\"Status code: \" + response.statusCode());"));
s.push(ident("System.out.println(\"Response body: \" + response.body());"));
s.push("} catch (Exception e) {");
s.push(ident("e.printStackTrace();"));
s.push("}");
return s.join("\n");
};
//#endregion
export { generator };
//# sourceMappingURL=java.js.map