I'm using odata controller in asp.net core application. now for documentation, I want to use swagger. I tried with many approaches but nothing is working.
Please suggest what need to do for integrating swagger
I'm using odata controller in asp.net core application. now for documentation, I want to use swagger. I tried with many approaches but nothing is working.
Please suggest what need to do for integrating swagger
You need to install the API Explorer for Microsoft ASP.NET Core and OData v4.0 and then take a look over some samples and documentation.
Code snippet from the docs:
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() );
}
} );
}