UNPKG

fumadocs-openapi

Version:

Generate MDX docs for your OpenAPI spec

42 lines (39 loc) 1.49 kB
'use client'; import { resolveMediaAdapter } from "../media/resolve-adapter.js"; import "../media/adapter.js"; //#region src/requests/generators/csharp.ts const generator = (url, data, { mediaAdapters }) => { const s = []; const imports = new Set([ "System", "System.Net.Http", "System.Text" ]); const headers = { ...data.header }; let body; if (data.body && data.bodyMediaType) body = resolveMediaAdapter(data.bodyMediaType, mediaAdapters)?.generateExample(data, { lang: "csharp", addImport(from) { imports.add(from); } }); for (const specifier of imports) s.push(`using ${specifier};`); s.push(""); if (body) s.push(body, ""); s.push("var client = new HttpClient();"); const headerLines = []; function addHeader(key, value) { headerLines.push(`client.DefaultRequestHeaders.Add("${key}", ${JSON.stringify(value)});`); } for (const k in headers) addHeader(k, headers[k].value); if (Object.keys(data.cookie).length > 0) addHeader("cookie", Object.entries(data.cookie).map(([key, param]) => `${key}=${param.value}`).join("; ")); s.push(...headerLines); const method = data.method[0].toUpperCase() + data.method.slice(1).toLowerCase() + "Async"; if (body) s.push(`var response = await client.${method}("${url}", body);`); else s.push(`var response = await client.${method}("${url}");`); s.push("var responseBody = await response.Content.ReadAsStringAsync();"); return s.join("\n"); }; //#endregion export { generator }; //# sourceMappingURL=csharp.js.map