Versions Compared

Key

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

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 JSON Mapping for details on how to use JSON templates for output mapping in data service.

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. 

Building the sample

The sample data service named JSONSample should be deployed using the instructions in Samples Setup.

...

The sample service can be run using any client that can do REST calls. For example, use tools such as cURL or Advanced REST Client Chrome browser extension. The HTTP header "Accept" should be set to "application/json" and also, if a JSON payload is sent to the server, the HTTP header "Content-Type" should be set to "application/json".

...

The service contains the following resourcesHTTP requests sent for each of the resources using cURL would be as follows:

  • "offices" (method=GET) : 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. The HTTP request sent using CURL would be as follows:

    Code Block
    curl -X GET -H "Accept: application/json" http://localhost:9763/services/samples/JSONSample/offices
  • "boston_customers" (method=GET) : Returns all the customers in Boston. The HTTP request sent using CURL would be as follows:

    Code Block
    curl -X GET -H "Accept: application/json" http://localhost:9763/services/samples/JSONSample/boston_customers
  • "employee/{employeeNumber}" (method=GET) : Returns employee information for the given employee number. The HTTP request sent using CURL would be as follows:

    Code Block
    curl -X GET -H "Accept: application/json" http://localhost:9763/services/samples/JSONSample/employee/1002
  • "employee" (method=POST) : Insert a new employee to the database with the given information. A  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/samples/JSONSample/employee/
  • "employee" (method=POST) with batch request : Insert a set of new employee to the database with the given information. A sample payload saved as the employee-payload.json file, that can be used when sending the data is given below.

    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/samples/JSONSample/employee_batch_req
  • "employee" (method=PUT) - Updates an existing user with new information. A  A sample payload saved as the employee-payload-update.json file, 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/samples/JSONSample/employee/
  • "employee" (method=GET) - Retrieve an existing employee.  The HTTP request sent using CURL would be as follows:

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

...