Generating Client Code From OData Metadata

Introduction 

 
Sometimes, when we need to call APIs, we are just given the information about the entities in the form of OData metadata. Now when we are not aware of possible methods and their parameters that are exposed for use, it becomes very cumbersome and time-consuming to call even a single method.
 
To some extent, we can still manage our life for GET methods, as they are easy to guess using entity names, but when it comes to PUT/POST/PATCH, things are not straightforward.
 
This is where we need to generate classes with given metadata. Let’s have a look at how we can generate these client-side proxy classes.
 

Install the Required Visual Studio Extension

 
I’m using Visual Studio 2019, but the equivalent features are available in other versions too. Navigate to Manage Extensions dialog and search for OData Connected Service as shown below and install it.
 
Generating Client Code from OData Metadata
 
Using this tool, one can easily generate classes for all the entities and complex types that are mentioned in the metadata.
 

Generating Proxy Classes

 
Next, open the project in Visual Studio inside which proxy classes have to be generated. Once the OData Connected Service extension is installed successfully, right-click on the project and selected Add Connected Service, as shown below:
 
Generating Client Code from OData Metadata
 
Next, select the OData Connected Service, as shown below:
 
Generating Client Code from OData Metadata
 
Next is to configure the endpoints, but before that, get ready with metadata in the form of an XML file. Here is the gist of what metadata looks like:
 
Generating Client Code from OData Metadata
 
Let’s browse the metadata file, as shown below:
 
Generating Client Code from OData Metadata
 
Click on Next and select all the required entities for which the schema is to be generated, as shown below:
 
Generating Client Code from OData Metadata
 
Click on Next and select all the required Function/Action which need to be imported, as shown below:
 
Generating Client Code from OData Metadata
 
Clicking on next will take you to the next screen where you can mention the class file name in which all the generated code would be saved. Here, I am taking the class name RetailReference, as shown below:
 
Generating Client Code from OData Metadata
 
Now if you wish to place all the generated code in respective separate-separate files rather than pushing everything into the single file, then this setting can be done by clicking on the Advanced Settings link as shown in the above screenshot, which will open up the below options:
 
Generating Client Code from OData Metadata
 
There are a few more options under Advanced Settings which can be utilized based on our coding guidelines.
 
Click on Finish and you will notice that all the entities are added to solution explorer, as shown below:
 
Generating Client Code from OData Metadata
 
We are all set to utilize our classes. Happy learning!