Configuration

La UI no tiene configuración en build time: resuelve qué spec renderizar enteramente en runtime, vía una regla con un override.

Una regla, un override

SourceWhenExample
GET /api-jsonPor defecto: coincide con lo que SwaggerModule.setup() de @nestjs/swagger expone junto al Swagger UIhttps://api.example.com/docs → fetches https://api.example.com/api-json
?spec=<url>Query param: tiene prioridad sobre el valor por defecto cuando está presentehttps://docs.example.com/?spec=https://api.example.com/api-json

CORS entre distintos orígenes

Si la UI se sirve en un origen distinto al de la API, usa el override ?spec= y asegúrate de que la configuración de CORS de la API permita a ese origen hacer GET del documento JSON.

Esta misma cuestión de same-origin vuelve a aparecer en la ejecución de requests: consulta Try it out para ver cómo su proxy esquiva CORS por completo, sin tocar la configuración propia de la API.

Múltiples specs

Pasa specs a DocfyUiModule.setup() para dejar que los usuarios cambien entre varios documentos OpenAPI sin salir de la UI, útil cuando una instancia de docfy-ui debe cubrir varios servicios:

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 se obtiene del lado del cliente exactamente igual que la spec /api-json por defecto (same-origin o no, sujeto a la política CORS de ese origen). Aparece un dropdown en el sidebar solo cuando hay dos o más specs configuradas. Omite specs por completo y docfy-ui se comporta exactamente igual que antes, sin selector renderizado.