Extends Swashbuckle with WebApi OData v4 support!
Install Swashbuckle
Install the Swashbuckle.OData NuGet package:
Install-Package Swashbuckle.OData
In SwaggerConfig
configure the custom provider:
c.CustomProvider(defaultProvider => new ODataSwaggerProvider(defaultProvider, c));
If your service is hosted using OWIN middleware, configure the custom provider as follows:
httpConfiguration
.EnableSwagger(c =>
{
// Use "SingleApiVersion" to describe a single version API. Swagger 2.0 includes an "Info" object to
// hold additional metadata for an API. Version and title are required but you can also provide
// additional fields by chaining methods off SingleApiVersion.
//
c.SingleApiVersion("v1", "A title for your API");
// Wrap the default SwaggerGenerator with additional behavior (e.g. caching) or provide an
// alternative implementation for ISwaggerProvider with the CustomProvider option.
//
c.CustomProvider(defaultProvider => new ODataSwaggerProvider(defaultProvider, c, () => httpConfiguration));
})
.EnableSwaggerUi();
To simplify configuration, this version of Swashbuckle.OData leverages .NET 4.5.2. Previous versions were compiled against .NET 4.0.
Also, if upgrading from v1.0, revert the previously recommended SwaggerConfig
changes:
Revert SwaggerConfig
to the original Swashbuckle
-supplied version:
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace Swashbuckle.OData
{
public class SwaggerConfig
{
public static void Register()
{
Remove the call to SwaggerConfig.Register(edmModel);
:
public static void Register(HttpConfiguration config)
{
var builder = new ODataConventionModelBuilder();
var edmModel = builder.GetEdmModel();
config.MapODataServiceRoute("odata", "odata", edmModel);
//SwaggerConfig.Register(edmModel);
}