Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

SwaggerConfigureOptions.cs 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. namespace Diligent.WebAPI.Host.Options
  2. {
  3. [ExcludeFromCodeCoverage]
  4. public class SwaggerConfigureOptions : IConfigureOptions<SwaggerGenOptions>
  5. {
  6. private readonly IApiVersionDescriptionProvider _provider;
  7. public SwaggerConfigureOptions(IApiVersionDescriptionProvider provider) => _provider = provider;
  8. public void Configure(SwaggerGenOptions options)
  9. {
  10. // add swagger document for every API version discovered
  11. foreach (var description in _provider.ApiVersionDescriptions)
  12. {
  13. options.SwaggerDoc(
  14. description.GroupName,
  15. CreateVersionInfo(description));
  16. }
  17. }
  18. public void Configure(string name, SwaggerGenOptions options)
  19. {
  20. Configure(options);
  21. }
  22. private OpenApiInfo CreateVersionInfo(
  23. ApiVersionDescription description)
  24. {
  25. var info = new OpenApiInfo()
  26. {
  27. Title = "Diligent Web API",
  28. Version = description.ApiVersion.ToString()
  29. };
  30. if (description.IsDeprecated)
  31. {
  32. info.Description += " This API version has been deprecated.";
  33. }
  34. return info;
  35. }
  36. }
  37. }