Files
FEDEO/backend/src/plugins/swagger.ts
2026-02-14 20:11:17 +01:00

38 lines
1.0 KiB
TypeScript

import { FastifyInstance } from "fastify";
import fp from "fastify-plugin";
import swagger from "@fastify/swagger";
import swaggerUi from "@fastify/swagger-ui";
export default fp(async (server: FastifyInstance) => {
await server.register(swagger, {
mode: "dynamic",
openapi: {
info: {
title: "FEDEO Backend API",
description: "OpenAPI specification for the FEDEO backend",
version: "1.0.0",
},
servers: [{ url: "/" }],
components: {
securitySchemes: {
bearerAuth: {
type: "http",
scheme: "bearer",
bearerFormat: "JWT"
}
}
}
},
});
// @ts-ignore
await server.register(swaggerUi, {
routePrefix: "/docs",
});
// Stable raw spec path
server.get("/openapi.json", async (_req, reply) => {
return reply.send(server.swagger());
});
});