NSwagServiceExtension.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Microsoft.AspNetCore.Builder;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. namespace WebMainFrameForEap.ServiceExtensions
  8. {
  9. public static class NSwagServiceExtension
  10. {
  11. public static IServiceCollection AddNSwag(this IServiceCollection services)
  12. {
  13. services.AddOpenApiDocument(settings =>
  14. {
  15. settings.DocumentName = "EAP接口文档";
  16. settings.Description = "EAP接口文档";
  17. settings.Title = "EAP接口文档";
  18. settings.UseControllerSummaryAsTagDescription = true;
  19. settings.AddSecurity("身份认证Token", Enumerable.Empty<string>(), new NSwag.OpenApiSecurityScheme()
  20. {
  21. Description = "JWT授权(数据将在请求头中进行传输) 直接在下框中输入Bearer {token}(注意两者之间是一个空格)",
  22. Name = "Authorization",
  23. In = NSwag.OpenApiSecurityApiKeyLocation.Header,
  24. Type = NSwag.OpenApiSecuritySchemeType.ApiKey
  25. });
  26. });
  27. return services;
  28. }
  29. public static IApplicationBuilder UseNSwag(this IApplicationBuilder builder)
  30. {
  31. builder.UseOpenApi().UseAuthentication().UseSwaggerUi3(p =>
  32. {
  33. p.Path = "/api/docs";
  34. p.DocumentPath = "/swagger/{documentName}/swagger.json";
  35. p.OperationsSorter = "alpha";
  36. p.TagsSorter = "alpha";
  37. });
  38. return builder;
  39. }
  40. }
  41. }