Designbest Rest API: differenze tra le versioni

Da Webmobili Wiki.
Riga 1: Riga 1:
== Access Token ==
== Access Token ==
Qui i particolari per la generazione dell'Access Token...
=== Token valido 100 anni ===
Per servizi che hanno bisogno di un token fisso e non possono fare la richiesta ogni volta (es. Zapier),<br/>
ecco un token che dura 100 anni:
<pre>
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c3IiOiJkZXNpZ25iZXN0cmVzdCIsImlzcyI6IndlYm1vYmlsaSIsImF1ZCI6ImRlc2lnbmJlc3QifQ.1Japjgg69Dgv5Nn4FO7yHfI6uq-AFk8pPEzRVqjVhTs
</pre>


== Configurazione di Swagger ==
== Configurazione di Swagger ==

Versione delle 15:04, 19 nov 2024

Access Token

Token valido 100 anni

Per servizi che hanno bisogno di un token fisso e non possono fare la richiesta ogni volta (es. Zapier),
ecco un token che dura 100 anni:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c3IiOiJkZXNpZ25iZXN0cmVzdCIsImlzcyI6IndlYm1vYmlsaSIsImF1ZCI6ImRlc2lnbmJlc3QifQ.1Japjgg69Dgv5Nn4FO7yHfI6uq-AFk8pPEzRVqjVhTs

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, per poter cambiare il nome dell'endpoint della documentazione in /designbest e personalizzare la grafica

app.UseSwagger(options => {
	options.RouteTemplate = "designbest/{documentName}/swagger.json";
});
app.UseSwaggerUI(options => {
    options.DocumentTitle = "Designbest REST API";
	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, RoutePrefix e SwaggerEndpoint() sono collegati e servono a cambiare il nome default per raggiungere la url della documentazione
  • InjectStylesheet() e InjectJavascript() servono a personalizzare la grafica.
    Perché questi funzionino è necessario attivare app.UseStaticFiles(); e creare la cartella wwwroot che conterrà le cartelle css e js

  • Nel file Properties/launchSettings.json modificare i campi launchUrl con la stringa "swagger" => "designbest".