Configuratie

De UI heeft geen build-time configuratie: ze lost de te renderen spec volledig op tijdens runtime, via één regel met één override.

Eén regel, één override

SourceWhenExample
GET /api-jsonStandaard: komt overeen met wat SwaggerModule.setup() van @nestjs/swagger naast Swagger UI aanbiedthttps://api.example.com/docs → fetches https://api.example.com/api-json
?spec=<url>Query-param: krijgt voorrang op de standaard wanneer aanwezighttps://docs.example.com/?spec=https://api.example.com/api-json

CORS tussen verschillende origins

Wordt de UI op een andere origin dan de API geserveerd, gebruik dan de ?spec=-override en zorg dat de CORS-configuratie van de API die origin toestaat om het JSON-document op te GET-en.

Diezelfde same-origin-vraag komt terug bij het uitvoeren van requests: zie Try it out voor hoe de proxy daarvan CORS volledig omzeilt, zonder de eigen configuratie van de API aan te raken.

Meerdere specs

Geef specs mee aan DocfyUiModule.setup() zodat gebruikers tussen meerdere OpenAPI-documenten kunnen wisselen zonder de UI te verlaten, handig wanneer één docfy-ui-instantie meerdere services moet dekken:

main.ts
DocfyUiModule.setup('/docs', app, {
  specs: [
    { name: 'Users service', url: 'https://users.example.com/api-json' },
    { name: 'Orders service', url: 'https://orders.example.com/api-json' },
  ],
});

Elke url wordt client-side opgehaald, precies zoals de standaard /api-json-spec (same-origin of niet, onderworpen aan het CORS-beleid van die origin). Een dropdown verschijnt in de sidebar alleen wanneer twee of meer specs geconfigureerd zijn. Laat je specs helemaal weg, dan gedraagt docfy-ui zich precies als voorheen, geen switcher gerenderd.