UNPKG

fumadocs-openapi

Version:

Generate MDX docs for your OpenAPI spec

58 lines (55 loc) 2.19 kB
'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