Designbest Rest API: differenze tra le versioni
Da Webmobili Wiki.
Nessun oggetto della modifica |
|||
| Riga 48: | Riga 48: | ||
options.SwaggerEndpoint("/designbest/v1/swagger.json", "Designbest REST API"); | options.SwaggerEndpoint("/designbest/v1/swagger.json", "Designbest REST API"); | ||
}); | }); | ||
// ... | |||
app.UseStaticFiles(); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* <code>RouteTemplate</code>, <code>RoutePrefix</code> e <code>SwaggerEndpoint()</code> sono collegati e servono a cambiare il nome default per raggiungere la url della documentazione | * <code>RouteTemplate</code>, <code>RoutePrefix</code> e <code>SwaggerEndpoint()</code> sono collegati e servono a cambiare il nome default per raggiungere la url della documentazione | ||
* <p><code>InjectStylesheet()</code> e <code>InjectJavascript()</code> servono a personalizzare la grafica.<br/>Perché questi funzionino è necessario attivare <code>app.UseStaticFiles();</code> e creare la cartella <code>wwwroot</code> che conterrà le cartelle <code>css</code> e <code>js</code></p> | * <p><code>InjectStylesheet()</code> e <code>InjectJavascript()</code> servono a personalizzare la grafica.<br/>Perché questi funzionino è necessario attivare <code>app.UseStaticFiles();</code> e creare la cartella <code>wwwroot</code> che conterrà le cartelle <code>css</code> e <code>js</code></p> | ||
Versione delle 17:46, 7 nov 2024
Configurazione di Swagger
Nel file Program.cs configurare così
builder.Services.AddSwaggerGen(
opt => {
opt.SwaggerDoc("v1", new OpenApiInfo {
Title = "Designbest REST API",
Description = "Designbest REST API",
Version = "v1",
Contact = new OpenApiContact { Email = "info@designbest.com", Name = "Webmobili s.r.l." }
});
var tokenService = new TokenService(builder.Configuration, builder.Environment);
opt.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme {
In = ParameterLocation.Header,
Description = "Please enter a valid token like " + tokenService.GetToken()?.AccessToken,
Name = "Authorization",
Type = SecuritySchemeType.Http,
BearerFormat = "JWT",
Scheme = "Bearer"
});
opt.AddSecurityRequirement(new OpenApiSecurityRequirement {
{
new OpenApiSecurityScheme {
Reference = new OpenApiReference {
Type=ReferenceType.SecurityScheme,
Id=JwtBearerDefaults.AuthenticationScheme
}
},
Array.Empty<string>()
}
});
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
opt.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFile));
}
);
e di sotto
app.UseSwagger(options => {
options.RouteTemplate = "designbest/{documentName}/swagger.json";
});
app.UseSwaggerUI(options => {
options.InjectStylesheet("/css/designbest-swagger.css");
options.InjectJavascript("/js/swagger-custom.js");
options.RoutePrefix = "designbest";
options.SwaggerEndpoint("/designbest/v1/swagger.json", "Designbest REST API");
});
// ...
app.UseStaticFiles();
RouteTemplate,RoutePrefixeSwaggerEndpoint()sono collegati e servono a cambiare il nome default per raggiungere la url della documentazioneInjectStylesheet()eInjectJavascript()servono a personalizzare la grafica.
Perché questi funzionino è necessario attivareapp.UseStaticFiles();e creare la cartellawwwrootche conterrà le cartellecssejs