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
npm install docfy-uiDieses 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.
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:
npm run build # in this package, or use the prebuilt dist/ from npmLiefere 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).