Due to a known issue do not use JDK1.8.0_151 with WSO2 products. Use JDK 1.8.0_144 until JDK 1.8.0_162-ea is released.
This documentation is for WSO2 Data Services Server version 3.5.1. For the latest documentation, see the documentation for WSO2 Enterprise Integrator.

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this tutorial, we will run through the process of exposing and RDBMS as an OData service. When OData is enabled for an datasource, you do not need to manually define CRUD operations. These will be automatically created.

Table of Contents


Note that the OData feature can only be used for RDBMS and Cassandra datasources.

Setting up an RDBMS

Follow the steps given below to set up a MySQL database for this tutorial.

  1. Install the MySQL server.
  2. Download the JDBC driver for MySQL from here and copy it to your <DSS_HOME>/repository/components/lib directory.
  3. Create a MySQL database with the following table:

    Code Block
    CREATE TABLE ACCOUNT(AccountID int NOT NULL,Branch varchar(255) NOT NULL, AccountNumber varchar(255),AccountType ENUM('CURRENT', 'SAVINGS') NOT NULL,
    Balance FLOAT,ModifiedDate DATE,PRIMARY KEY (AccountID)); 
  4. Enter the following data into the table:

    Code Block
    INSERT INTO ACCOUNT VALUES (1,"AOB","A00012","CURRENT",231221,'2014-12-02');

Expose the RDBMS as an OData service

Follow the steps given below.

  1. When you connect the datasource, select the OData check box as shown below.

Access the data service using CRUD operations

Open a command prompt execute the following CURL commands using CRUD operations:


Note that you should have privileges to perform CRUD operations on this database. If not, the OData service will not work properly.

  • To get the service document:

    Code Block
    curl -X GET -H 'Accept: application/json' https://localhost:9443/odata/{data_service_name}/{data_source_id}
  • To get the metadata of the service:

    Code Block
    curl -X GET -H 'Accept: application/xml' https://localhost:9443/odata/{data_service_name}/{data_source_id}/$metadata
  • To read details from the ACCOUNT table:

    Code Block
    curl -X GET -H 'Accept: application/xml' https://localhost:9443/odata/{data_service_name}/{data_source_id}/ACCOUNT