Skip to main content

@tymber/openapi

The @tymber/openapi module provides automatic OpenAPI specification generation and an interactive API console for your Tymber application.

Installation

npm install @tymber/openapi

Usage

Register the OpenAPIModule in your application:

import { App } from "@tymber/core";
import { OpenAPIModule } from "@tymber/openapi";

const app = await App.create({
modules: [
OpenAPIModule,
// ...
],
});

Once registered, the API console will be available at the /console path of your application.

Features

  • Automatic Specification Generation: The module automatically builds an OpenAPI 3.1.0 specification by inspecting the endpoints of all registered modules.
  • Interactive API Console: A built-in view that renders the OpenAPI specification, allowing you to explore and test your API directly from the browser.
  • Schema Integration: It automatically extracts path parameters, query parameters, and payload schemas from your endpoint handlers to document the request and response structures.

Customizing Operations

You can provide additional OpenAPI metadata directly in your endpoint handlers by adding an openapi property to your Endpoint class:

import { Endpoint, type HttpContext } from "@tymber/core";

export class GetMyEndpoint extends Endpoint {
public openapi = {
summary: "My custom summary",
description: "A more detailed description of what this endpoint does.",
responses: {
200: {
description: "Successful response",
content: {
"application/json": {
schema: {
type: "object",
properties: {
message: { type: "string" },
},
},
},
},
},
},
};

handle(ctx: HttpContext) {
return Response.json({ message: "Hello World" });
}
}

The module will merge these properties into the generated OpenAPI operation object.