Introduction
- Any operations on orders, workflows, jobs and related objects such as cancelling, suspending and resuming orders are performed by the JS7 - REST Web Service API.
- For detailed information see the Technical Documentation of the REST Web Service API.
- In addition, a PowerShell module is available for simplified access to the REST Web Service API. This is described in the JS7 - PowerShell Module article.
- The REST Web Service API can also be accessed from Shell utilities such as curl. Find the JS7 - Unix Shell Command Line Interface that implements most frequently used operations on Controllers and Agents, Workflows, jobs and orders.
Usage
- The REST Web Service API is called by using a HTTP client that sends JSON based requests and that receives JSON based responses.
- The following REST Web Service API requests are available:
- URL
joc/api/authentication/login
- The first operation a client carries out is a call to this URL in order to authenticate and to retrieve an access token.
- A valid account and password have to be provided by the client for HTTP authentication. For HTTPS connections in addition or alternatively JS7 - Certificate based Authentication can apply - for details see the JS7 - Identity and Access Management article.
- Permissions apply as explained in the JS7 - Management of User Accounts, Roles and Permissions article.
- URL
joc/api/*
- Subsequent calls to URLs can, for example, retrieve the inventory of workflow.
- The relevant URLs can be found in the Technical Documentation of the REST Web Service API
- The JS7 REST Web Service API returns the relevant JSON response as indicated in the docs.
- URL
joc/api/authentication/logout
- The last operation a client carries out is a call to this URL in order to logout from the REST Web Service API.
- URL
- Requirements
- REST Web Service API requests should use HTTP POST or GET operations as indicated.
- Should the idle timeout between two web service requests exceed the JOC Cockpit session timeout then a login has to be performed, see the JS7 - Settings article for more information.
Examples using Curl
- Example: Get the list of orders scheduled until a given date.
- The attached example order_list_sample.sh is for use with curl. We do not consider curl to be perfect for handling web service requests. However, it shows the building blocks:
Explanations
- Line 4: Depending on your JOC Cockpit installation the protocol will be http or https. The default port is 4446 but might have been modified during setup.
- Line 7: The Controller ID is specified during installation of the Controller and identifies a Controller standalone instance or a Controller cluster.
- Line 10: Specify the relative date up to which you want the list of scheduled orders to be returned.
- Line 13, 14: Default credentials after installation include the account "root" and password "root". The credentials might have been changed after setup of the JOC Cockpit.
- Line 22: Note the use of Basic HTTP authentication
- Line 23: The request to the /authentication/login web service returns an access token which is used with further requests.
- Line 32, 33: Note the JSON body created for the request and the URL including the path
/joc/api/orders
used to return order information. - Line 42: Always perform a logout and consider the session idle timeout.
- The attached example order_list_sample.sh is for use with curl. We do not consider curl to be perfect for handling web service requests. However, it shows the building blocks:
- Example: Suspend an order.
- The attached example order_suspend_sample.sh is for use with curl. We do not consider curl to be perfectly prepared to handle web service requests, however, it shows the building blocks:
- Explanations
- Line 31: Suspending an order includes specifying the Controller ID and an array of order IDs..
- Line 38: The operation to suspend an order works asynchronously as the request is forwarded to the Controller and from the Controller to the Agent that holds the order. More elaborate solutions to wait for completion of an suspend operation than just waiting a few seconds include repeated checking the order state.
- Line 47: The request to retrieve the order state information is sent to the
/joc/api/orders
URL. - Line 58: Always perform a logout and consider the session idle timeout.
- The attached example order_suspend_sample.sh is for use with curl. We do not consider curl to be perfectly prepared to handle web service requests, however, it shows the building blocks:
- Example: Run test cases for a number of orders.
- The attached example invoke_testrun.sh is for use with curl. We do not consider curl to be perfectly prepared to handle web service requests, however, it shows the building blocks.
- The script can be parameterized to run a number of orders for a given set of workflows.
- Find the JS7 - Unix Shell Command Line Interface for a collection of frequently used operations.
Overview
Content Tools