Designbest Rest API: differenze tra le versioni
Da Webmobili Wiki.
Creata pagina con "== Configurazione di Swagger == Nel file <code>Program.cs</code> configurare così <syntaxhighlight lang="c#"> 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...." |
|||
| Riga 38: | Riga 38: | ||
e di sotto | e di sotto | ||
< | <syntaxhighlight lang="c#"> | ||
app.UseSwagger(options => { | app.UseSwagger(options => { | ||
options.RouteTemplate = "designbest/{documentName}/swagger.json"; | options.RouteTemplate = "designbest/{documentName}/swagger.json"; | ||
Versione delle 17:43, 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");
});
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 cartellawwwroot