14

What is the best way of documenting OData endpoints? Is there a way to use Swashbuckle for it?

free4ride
  • 1,613
  • 1
  • 18
  • 21

5 Answers5

8

Yes, try Swashbuckle.OData. It adds Swashbuckle support for ODataControllers.

See it in action here: http://swashbuckleodata.azurewebsites.net/swagger

  • 3
    Site is down, unfortunately – hyankov Mar 13 '19 at 14:46
  • Swashbuckle.OData no longer works with the latest version of Microsoft.Odata.Core. Apparently Microsoft changed the dependencies in Microsoft.AspNet.OData from System.Web.OData and Swashbuckle.OData hasn't been updated to use the latest OData packages. – andrewmo Jun 11 '19 at 02:25
5

Yes, we are trying to support it like yaml -> Swagger, yaml -> csdl ..

But it will need time to implementation, you can see a prototype and track there https://github.com/OData/model-first

Fan Ouyang
  • 2,132
  • 1
  • 11
  • 13
4

I actually got something working for this using the IDocumentFilter function within Swashbuckle. I answered a similar question on the GitHub repo for Swashbuckle. Check out my response here (it's either at bottom or toward bottom):

https://github.com/domaindrivendev/Swashbuckle/issues/149

I've posted an example of a working IDocumentFilter implementation that you could leverage to get your OData endpoint set up in the Swagger ui.

Erik Dahl
  • 478
  • 5
  • 12
1

The easiest way to do that I found is to convert OData definition to Open API spec using https://github.com/oasis-tcs/odata-openapi

Then import the spec document into swagger is very easy.

Jérôme B
  • 420
  • 1
  • 6
  • 25
1

Asp NET and Asp NET Core Api Versioning

You can use Api Versioning (as it extends ApiExplorer with Odata information) for both WebApi and AspNetCore.

There are samples available for both:

This sample how it integrates well with Swashbuckle/Swagger ui.

Fab
  • 14,327
  • 5
  • 49
  • 68