Deploy: DocfyUiModule vs standalone

Liefere es aus derselben NestJS-App aus, die auch die API bereitstellt, oder als statisches Bundle auf jedem Static-Host.

Installation

bash
npm install docfy-ui

Dieses Paket liefert ein vorgebautes statisches Bundle (dist/): Es gibt keinen serverseitigen Code, den man auf einem Node-Backend installieren müsste. Nutzt du nestjs-docfy, wrappt dessen DocfyUiModule.setup() das schon für dich; ansonsten liefere den dist/-Ordner mit einem beliebigen statischen Dateiserver aus.

Über DocfyUiModule.setup()

Das einfachste Setup, wenn dein Backend NestJS ist: Lass nestjs-docfy dieses Paket für dich einbinden.

ts
import { NestFactory } from "@nestjs/core";
import { SwaggerModule, DocumentBuilder } from "@nestjs/swagger";
import { DocfyUiModule } from "nestjs-docfy";

const app = await NestFactory.create(AppModule);

DocfyUiModule.setup("/docs", app); // before SwaggerModule.setup

const document = SwaggerModule.createDocument(app, new DocumentBuilder().build());
SwaggerModule.setup("api", app, document); // exposes /api-json, which docfy-ui fetches by default

await app.listen(3000);

Öffne /docs: keine weitere Konfiguration nötig.

Standalone (statisch)

Ohne nestjs-docfy baue und liefere die statischen Assets selbst aus und zeig auf ein beliebiges OpenAPI-Dokument:

bash
npm run build   # in this package, or use the prebuilt dist/ from npm

Liefere dist/ mit einem beliebigen Static-Host aus (NestJS' ServeStaticModule, Nginx, S3 + CloudFront usw.), neben oder vor der API, die die Spec bereitstellt.

Auf eine entfernte Spec zeigen

Liegt die Spec auf einem anderen Origin, nutze den ?spec=<url>-Override (siehe Konfiguration).