Versions Compared

Key

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

Insert excerpt
Data Integration Samples
Data Integration Samples
nopaneltrue

Table of Contents
maxLevel3
minLevel3

...

A popular data format used with RESTful services is JSON. This sample contains a data service with JSON output mapping templates. Go to See Exposing Data in JSON Format for details on how to use JSON templates for output mapping in a data service. Also, see Using JSON Messages with RESTful services, for details on sending JSON payloads in a message.

The service contains the following resources:

  • Resource: "offices"
  • Method: POST 
  • Description: Lists all the offices in the database. When office information is printed, all the employees that belong to an office are also printed using a nested query, which refers to the employeesInOfficeSQL query.

  • Resource: "boston_customers"
  • Method: GET
  • Description: Returns all the customers in Boston. 

  • Resource: "employee/{employeeNumber}"
  • Method: GET
  • Description: Returns employee information for the given employee number.

  • Resource: "employee"
  • Method: POST
  • Description: Insert a new employee to the database with the given information. 

  • Resource: "employee" with batch request 
  • Method: POST
  • Description: Insert a set of new employees to the database with the given information.

  • Resource: "employee"
  • Method: PUT
  • Description: Updates an existing user with new information. 

  • Resource: "employee
  • Method: GET
  • Description: Retrieve an existing employee. 

...

The HTTP requests sent for each of the resources using cURL would be as follows:

  • "offices" (method=GET)

    Code Block
    curl -X GET -H "Accept: application/json" http://localhost:9763/services/JSONSample/offices
  • "boston_customers" (method=GET)

    Code Block
    curl -X GET -H "Accept: application/json" http://localhost:9763/services/JSONSample/boston_customers
  • "employee/{employeeNumber}" (method=GET)

    Code Block
    curl -X GET -H "Accept: application/json" http://localhost:9763/services/JSONSample/employee/1002
  • "employee" (method=POST) : A sample payload saved as the employee-payload.json file, that can be used when sending the data is given below.

    Code Block
    {
      "_postemployee": {
        "employeeNumber" : "14001",
        "lastName": "Smith",
        "firstName": "Will",
        "email": "will@google.com",
        "salary": "15500.0"
      }
    }

    The HTTP request sent using CURL would be as follows:

    Code Block
    curl -X POST -H 'Accept: application/json'  -H 'Content-Type: application/json' --data "@employee-payload.json" http://localhost:9763/services/JSONSample/employee/
  • "employee" (method=POST) with batch request : A sample payload saved as the employee-payload.json file, that can be used when sending the data is given below.

    Note

    Note that you need to enable batch requesting for the data service before proceeding:

    1. Log in to the management console of WSO2 EI using the following URL: https://localhost:9443/carbon.

    2. Select the JSONSample data service that is listed in the Services → List menu.
    3. Click Edit Data Service (Wizard) to open the wizard and select the Enable Batch Request check box.
    4. Click Next and save the changes.

    Batch requesting is now enabled for the data service.

    Code Block
    {
        "_postemployee_batch_req": {
            "_postemployee": [
                {
                    "employeeNumber": "5012",
                    "lastName": "Smith",
                    "firstName": "Will",
                    "email": "will@smith.com",
                    "salary": "13500.0"
                },
                {
                    "employeeNumber": "5013",
                    "lastName": "Peter",
                    "firstName": "Parker",
                    "email": "peter@parker.com",
                    "salary": "15500.0"
                }
            ]
        }
    }

    The HTTP request sent using CURL would be as follows:

    Code Block
    curl -X POST -H 'Accept: application/json'  -H 'Content-Type: application/json' --data "@employee-payload.json" http://localhost:9763/services/JSONSample/employee_batch_req
  • "employee" (method=PUT) -  A sample payload saved as the employee-payload-update.json filejsonfile, that can be used when sending the data is given below.

    Code Block
    {
      "_putemployee": {
        "employeeNumber" : "14001",
        "lastName": "Smith",
        "firstName": "Will",
        "email": "will@smith.com",
        "salary": "78500.0"
      }
    }

    The HTTP request sent using CURL would be as follows:

    Code Block
    curl -X PUT -H 'Accept: application/json'  -H 'Content-Type: application/json' --data "@employee-payload-update.json" http://localhost:9763/services/JSONSample/employee/
  • "employee" (method=GET)

    Code Block
    curl -X GET -H 'Accept: application/json'  http://localhost:9763/services/JSONSample/employee/14001