Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

63 lignes
2.1 KiB

  1. using Microsoft.AspNetCore.Builder;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using Microsoft.OpenApi.Models;
  4. using System.Collections.Generic;
  5. namespace Api.Start
  6. {
  7. public static class SwaggerRegistrar
  8. {
  9. public static void RegisterSwagger(this IServiceCollection services)
  10. {
  11. services.AddSwaggerGen(c =>
  12. {
  13. c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" });
  14. c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
  15. {
  16. Description = @"JWT Authorization header using the bearer scheme.
  17. Enter 'Bearer' [space] and then your token in the text input below.
  18. Example: 'Bearer 12345abcdef'",
  19. Name = "Authorization",
  20. In = ParameterLocation.Header,
  21. Scheme = "Bearer",
  22. Type = SecuritySchemeType.Http
  23. });
  24. c.AddSecurityRequirement(new OpenApiSecurityRequirement
  25. {{new OpenApiSecurityScheme
  26. {
  27. Reference = new OpenApiReference
  28. {
  29. Type = ReferenceType.SecurityScheme,
  30. Id = "Bearer"
  31. },
  32. Name = "Bearer",
  33. In = ParameterLocation.Header,
  34. }, new List<string>()
  35. }});
  36. c.OperationFilter<AddRequiredHeaderParameter>();
  37. });
  38. }
  39. public static void ConfigureSwagger(this IApplicationBuilder app)
  40. {
  41. app.UseSwagger(c =>
  42. {
  43. c.RouteTemplate = "api-docs/{documentName}/swagger.json";
  44. });
  45. app.UseSwaggerUI(c =>
  46. {
  47. c.SwaggerEndpoint("/api-docs/v1/swagger.json", "API V1.0");
  48. c.DocumentTitle = "Api";
  49. c.EnableDeepLinking();
  50. c.EnableValidator();
  51. });
  52. }
  53. }
  54. }