【问题标题】:How to implement swagger for odata controllers如何为 odata 控制器实现 swagger
【发布时间】:2018-10-01 09:49:14
【问题描述】:

我在 asp.net 核心应用程序中使用 odata 控制器。现在对于文档,我想使用 swagger。我尝试了很多方法,但没有任何效果。

请建议集成 swagger 需要做什么

【问题讨论】:

  • 这是一个已知问题,您可以跟踪此here,如果对您有帮助,您还可以在此链接上查看开发人员尝试的解决方法。
  • 我已经描述了要做什么,以及一些自定义代码:stackoverflow.com/questions/59853954/…

标签: asp.net-core .net-core swagger-2.0 aspnetboilerplate


【解决方案1】:

您需要安装the API Explorer for Microsoft ASP.NET Core and OData v4.0,然后查看一些samplesdocumentation

文档中的代码 sn-p:

public void ConfigureServices( IServiceCollection services )
{
  // format the version as "'v'major[.minor][-status]"
  services.AddMvc();
  services.AddVersionedApiExplorer( o => o.GroupNameFormat = "'v'VVV" );
  services.AddApiVersioning();
  services.AddOData().EnableApiVersioning();
  services.AddSwaggerGen(
    options =>
    {
      var provider = services.BuildServiceProvider()
                             .GetRequiredService<IApiVersionDescriptionProvider>();

      foreach ( var description in provider.ApiVersionDescriptions )
      {
        options.SwaggerDoc(
          description.GroupName,
          new Info()
          {
            Title = $"Sample API {description.ApiVersion}",
            Version = description.ApiVersion.ToString()
          } );
      }
   } );
}

public void Configure(
    IApplicationBuilder app,
    VersionedODataModelBuilder modelBuilder,
    IApiVersionDescriptionProvider provider )
{
    var models = modelBuilder.GetEdmModels();
    app.UseMvc( routes => routes.MapVersionedODataRoutes( "odata", null, models ) );
    app.UseSwagger();
    app.UseSwaggerUI(
        options =>
        {
            foreach ( var description in provider.ApiVersionDescriptions )
            {
                options.SwaggerEndpoint(
                    $"/swagger/{description.GroupName}/swagger.json",
                    description.GroupName.ToUpperInvariant() );
            }
        } );
}

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2021-12-14
    • 2011-08-13
    • 1970-01-01
    • 2019-12-05
    相关资源
    最近更新 更多