427 messaggi dal 13 novembre 2009
Salve, ho un problema con swagger. questa la configurazione della UI
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Mia Società V1");
c.RoutePrefix = string.Empty;
});
In Debug localhost:xxx/swagger/index.html tutto funziona regolarmente. Pubblico l'app su IIS, il servizio sale regolarmente. aprendo da server il browser e facendo localhost/miasocieta/swagger/index.html da errore di caricamento del file .json perché punta (ho scoperto) a http://localhost/swagger/v1/swagger.json.
In altri termini non tiene conto della directory virtuale di una applicazione pubblicata su IIS (miasocietà).
Ho provato a mettere ./swagger....ma nulla, ad implementare routeprefix ecc ma nulla.
In altri termini posso immaginare che in linea di massima sembra ci siano problemi a far digerire webapp pubblicare sotto DefaultSites, quindi NomeMacchina(ipaddress)/miasocietà come indirizzo di base per chiamar eil servizio, trovo assurdo tutto questa complicazione. Ho un progetto analogo ma in aspnet 4.6.1 con swagger i li non mi sono preoccupato di nulla.
In tutto questo comunque il servizio con postman funziona regolarmente, il problema è "solo" la esposizione della documentazione.
F.
Modificato da flaviovb il 12 settembre 2019 17:17 -
427 messaggi dal 13 novembre 2009
Se a qualcuno interessa ho risolto...la configurazione base è questa
app
.UseSwagger()
.UseSwaggerUI(c =>
{
c.RoutePrefix = "";
c.SwaggerEndpoint("swagger/v1/swagger.json", "Docs API V1");
});
per poter farla funzionare in debug, su virtual dir in IIS in Default WebSites e in produzione su IIS come WebSite mappa DNS e porta 80 di default, insomma le configurazioni classiche
app
.UseSwagger( c => c.RouteTemplate = "swagger/{documentName}/swagger.json" )
.UseSwaggerUI(c =>
{
c.RoutePrefix = "swagger";
c.SwaggerEndpoint("v1/swagger.json", "Docs API V1");
});
in altri termini RouteTemplate customizza la route del json aggiungendo host per default del sito, nel caso della virtual directory nomemacchina o indirizzoip /nomesito
quindi RoutePrefix come da regola standard per un controller api antepone il proprio valore a tutte le chiamate incluse quelle che caricano dinamicamente json e css, standard e custom per la UI di Swagger

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.