Documentation generation
Pulsar provides a simple way to generate documentation for your API using Swagger.
It is generated at runtime and can be accessed at /swagger when enabled.
If you use body validation with Zod, the documentation will also include the schema for the request body.
Example
All you need to do is to use the swagger middleware and the documentation will be generated automatically.
import { start, router, json, swaggerMiddleware } from "@pulsar-http/core";
import { z } from "zod";
const userSchema = z.object({
    name: z.string(),
    age: z.number(),
});
const routes = [
    router.get("/", async () => json({ message: "Hello, world!" })),
    router.post('/users', async ({ body }) => json({
        message: "User created",
        user: body,
    }), userSchema),
];
start({
    routes,
    middlewares: [swaggerMiddleware(routes)],
});
In this example:
- The swaggerMiddlewaremiddleware is used to generate the documentation.
- The userSchemaobject is used to validate the request body and will be included in the documentation.
If you access the /swagger route, you will see the documentation for the API.
Summary
- Use the swaggerMiddlewaremiddleware to generate documentation.
- The documentation will include the schema for the request body if you use Zod for body validation.
- The documentation is generated at runtime and can be accessed at /swagger.