Configuração

A UI não tem configuração em build-time: ela resolve o spec para renderizar inteiramente em runtime, via uma regra com um override.

Uma regra, um override

SourceWhenExample
GET /api-jsonDefault: casa com o que SwaggerModule.setup() do @nestjs/swagger expõe ao lado do Swagger UIhttps://api.example.com/docs → fetches https://api.example.com/api-json
?spec=<url>Query param: tem precedência sobre o default quando presentehttps://docs.example.com/?spec=https://api.example.com/api-json

CORS em origins diferentes

Se a UI é servida em uma origin diferente da API, use o override ?spec= e garanta que a configuração de CORS da API permita que essa origin faça GET no documento JSON.

Essa mesma questão de origin volta a aparecer na execução de request: veja Try it out pra entender como o proxy dele dribla CORS por completo, sem mexer na configuração da API.

Múltiplos specs

Passe specs pro DocfyUiModule.setup() pra deixar os usuários trocarem entre vários documentos OpenAPI sem sair da UI, útil quando uma instância do docfy-ui deve cobrir múltiplos serviços:

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' },
  ],
});

Cada url é buscada client-side exatamente como o spec default /api-json (same-origin ou não, sujeito à política de CORS dessa origin). Um dropdown aparece na sidebar só quando há dois ou mais specs configurados. Omita specs por completo e o docfy-ui se comporta exatamente como antes, sem switcher renderizado.