3DEXPERIENCE™ REST API’s

The 3DEXPERIENCE™ platform contains large number of REST endpoints that can be used for various tasks. TIF provides an API against these REST endpoints that is referred to as 3DEXPERIENCE™ REST API or in shorter form either 3DX REST API or DSX REST API.

The 3DX REST API contains many classes and interfaces used for sending and receiving data to the various endpoints.

Retry Settings

The HTTP client used for the DSX REST APIs can be configured to handle retry attempts.

The retry settings for the DSX REST client is exposed via:

context.dsxAPI().retrySettings()
    .maxAttempts(4)
    .delayMs(10000)
    .backoffMultiplier(3)
    .maxDelayMs(60000)
    .statusCodes(408,429,500,502,503,504)
    .allowNonIdempotentRetries(true)
    .honorRetryAfterHeader(false);
//...

The default settings are shown in this table:

Setting Default value

Max Attempts

7

Delay

2 seconds

Backoff Multiplier

2.0

Max Delay

1 minute

Allowed HTTP status codes

408, 429, 500, 502, 503, 504

Honor "Retry After" HTTP response header

True

Allowing non-idempotent request methods

False

3D Space API

The DSX API is large and is rapidly developed, we do our best to have typed support for the most commonly used APIs. In the case where we lack typed support for a particular service, there is always a possibility to call the REST service directly by using the so called Generic Service, read more about this service further in the documentation.

Most of the services follow a similar pattern, this document will try to guide you through the basic usage of the API by using some examples.

For more information about the 3DX REST Services and their API, please visit this page:

The Java API documentation for the 3DEXPERIENCE™ REST API is available here:

3D Space

3DSpace Javadoc API

Enterprise IP Exchange

Enterprise Exchange API Docs

BIOVIA - Experiement/Laboratory APIs

There are no typed support for the BIOVIA related services, there is only a Generic service available for both these that allows communicating with the endpoints in these APIs. But it is the user of these APIs that is responsible for creating correct payloads and handle the return data.

Below are some examples of how to use these:

const ds = context.dsxAPI();
const labratoryService = ds.getLaboratoryService();
const session = ds.getTenantSession(); (1)

let result = labratoryService.getGenericService() (2)
    .get(session, "/resources/v1/laboratory/...");

const experimentService = ds.getExperimentService();
result = experimentService.getGenericService() (3)
    .get(session, "/.......");
1 Get the session
2 The generic service provides support for GET/POST/PUT/PATCH
3 Similar generic service for experiment APIs

See also: