Exposing a database as an OData service eliminates the need to define queries, operation etc. to access the information in the database. OData (Open Data Protocol) is an OASIS standard that defines the best practice for building and consuming RESTful APIs. You can easily expose databases as an OData service using WSO2 Enterprise Integrator (WSO2 EI).
Table of Contents maxLevel 3 minLevel 3
...
This OData sample was generated to work with the default h2 database (DATA_SERV_SAMP.h2.db
), which used is used for samples in the WSO2 EI product. This database is stored in the <EI_HOME>/samples/database
directory. The details of this database are as follows:
...
You can find the DDL of these sql tables in <EI_HOME>/samples/data-services/sql/h2
folder.
Building the sample
The sample data service named ODataSampleService
should be deployed and the server should be started using the instructions in Samples Setup.
Executing the sample
You can easily invoke the service using HTTP requests. See the following examples.
To get the service document:
Code Block GET https://localhost:94438243/odata/ODataSampleService/default Accept : application/json
To get the meta data of the service:
Code Block GET https://localhost:94438243/odata/ODataSampleService/default/$metadata Accept : application/xml
To read customer details:
Code Block GET https://localhost:94438243/odata/ODataSampleService/default/CUSTOMERS Accept : application/json
To add accounts details, send the HTTP request as shown below. In this example we will be creating an account ID named "1".
Code Block POST https://localhost:94438243/odata/ODataSampleService/default/ACCOUNTS Accept: application/json Content-Type: application/json Prefer : return=representation { "BALANCE" : 12.22 ,"ACCOUNTID" : 1 }
To delete account details, send the HTTP request as shown below. In this example, we will be deleting the account ID "1".
Code Block DELETE https://localhost:94438243/odata/ODataSampleService/default/ACCOUNTS(1) Accept: application/json
To update account details:
Code Block PUT https://localhost:94438243/odata/ODataSampleService/default/ACCOUNTS(1) Accept: application/json { "BALANCE" : 12.22 }
To invoke a particular query, send the HTTP request as shown below. In this example, we will receive the city and phone numbers of customers.
Code Block GET https://localhost:94438243/odata/ODataSampleService/default/CUSTOMERS?$select=CITY,PHONE Accept: application/json
To filter information based on a query, send the HTTP request as shown below. In this example, we will receive the employee details connected to the 'Nantes' city.
Code Block GET https://localhost:94438243/odata/ODataSampleService/default/CUSTOMERS?$filter=CITY eq 'Nantes' Accept: application/json