Configurazione
La UI non ha configurazione a build-time: risolve la spec da renderizzare interamente a runtime, tramite una regola con un override.
Una regola, un override
| Source | When | Example |
|---|---|---|
GET /api-json | Predefinito: corrisponde a ciò che espone SwaggerModule.setup() di @nestjs/swagger accanto a Swagger UI | https://api.example.com/docs → fetches https://api.example.com/api-json |
?spec=<url> | Query param: ha la precedenza sul default quando presente | https://docs.example.com/?spec=https://api.example.com/api-json |
CORS tra origini diverse
Se la UI è servita su un'origine diversa da quella dell'API, usa l'override ?spec= e assicurati che la configurazione CORS dell'API permetta a quell'origine di fare GET sul documento JSON.
Questa stessa questione di same-origin ritorna per l'esecuzione delle richieste: vedi Try it out per come il suo proxy aggira del tutto CORS, senza toccare la configurazione dell'API.
Più spec
Passa specs a DocfyUiModule.setup() per permettere agli utenti di passare tra più documenti OpenAPI senza lasciare la UI, utile quando un'istanza di docfy-ui deve coprire più servizi:
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' },
],
});Ogni url viene recuperato lato client esattamente come la spec predefinita /api-json (stessa origine o no, soggetto alla policy CORS di quell'origine). Un menu a tendina appare nella sidebar solo quando sono configurate due o più spec. Omettendo del tutto specs, docfy-ui si comporta esattamente come prima, senza switcher renderizzato.