Microsoft is making it incredibly easy to create an OData API using ASP.NET Core.  All you have to do is create an ASP.NET Core project, add an ODataController and add some boilerplate code.

First, create a new ASP.NET Core Web Application project in Visual Studio -- choose the Empty template.  After it's been added to your solution, add the Nuget package Microsoft.AspNetCore.OData.  You may need to include prerelease packages (as of right now it's v7.0.0-beta2).

Let's create a model called Product.

We'll also create a very simple controller for it.

Note that you have to set the EnableQuery attribute and return an IQueryable for the $filter/$select query options to work.

Now, let's wire it up in our Startup.cs file and hit F5.

When we debug and run it, you'll see that we can query the API as a standards-compliant OData API!


Being able to easily create an OData API opens up all sorts of possibilities.  For example, we can easily create a web service that surfaces on-premises data as a Virtual Entity in Dynamics 365.