Designbest Rest API
Da Webmobili Wiki.
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 <syntaxighlight lang="c#"> 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"); }); </syntaxhighlight>
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