Deploy: DocfyUiModule vs standalone

APIを公開しているのと同じNestJSアプリから配信するか、任意の静的ホスト上の静的バンドルとして配信します。

インストール

bash
npm install docfy-ui

このパッケージにはビルド済みの静的バンドル(dist/)が同梱されています。Nodeバックエンドにインストールするサーバーサイドコードはありません。nestjs-docfyを使っている場合は、DocfyUiModule.setup()がすでにこれをラップしています。そうでない場合は、任意の静的ファイルサーバーでdist/フォルダを配信してください。

DocfyUiModule.setup()経由

バックエンドがNestJSの場合、最もシンプルな設定はnestjs-docfyにこのパッケージをマウントさせることです。

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);

/docsにアクセスしてください。追加の設定は不要です。

スタンドアロン(静的)

nestjs-docfyを使わない場合は、静的アセットを自分でビルド・配信し、任意のOpenAPIドキュメントを指定してください。

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

任意の静的ホスト(NestJSのServeStaticModule、Nginx、S3 + CloudFrontなど)でdist/を、スペックを公開するAPIと並べて、またはその手前で配信してください。

リモートのスペックを指定する

スペックが別のオリジンにある場合は、?spec=<url>による上書きを使ってください(Configurationを参照)。