const std = @import("std"); const api_reference = @import("../internal/api_reference/root.zig"); const http_api = @import("api.zig"); const http = std.http; pub fn serve(request: *http_api.Request) !void { var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); const body = try api_reference.renderHtml(arena.allocator()); try http_api.respond(request, .ok, body, &html_headers); } pub fn serveOpenApi(request: *http_api.Request) !void { var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); const body = try api_reference.renderOpenApi(arena.allocator()); try http_api.respond(request, .ok, body, &json_headers); } const html_headers = [_]http.Header{ .{ .name = "content-type", .value = "text/html; charset=utf-8" }, .{ .name = "cache-control", .value = "no-store" }, .{ .name = "access-control-allow-origin", .value = "*" }, .{ .name = "access-control-allow-private-network", .value = "true" }, .{ .name = "connection", .value = "close" }, }; const json_headers = [_]http.Header{ .{ .name = "content-type", .value = "application/openapi+json; charset=utf-8" }, .{ .name = "cache-control", .value = "no-store" }, .{ .name = "access-control-allow-origin", .value = "*" }, .{ .name = "access-control-allow-private-network", .value = "true" }, .{ .name = "connection", .value = "close" }, };