7 UI Platform Services

The user interface for the Merchandising solutions has some common components that you may want to use in building custom workflows related to managing user notifications.

These ReST services are packaged as part of the Merchandising solution's Enterprise Archive (EAR) file. Installation of the ReST web services is therefore done by default.

Security

Services are secured using the J2EE-based security model.

  • Realm-based User Authentication: This verifies users through an underlying Realm. The username and password are passed using HTTP basic authentication.

  • Role-based Authorization: This assigns users to roles; authenticated users can access the services within the Merchandising suite.

  • The communication between the server and client is encrypted using one-way SSL. In non-SSL environments the encoding defaults to BASE-64 so it is highly recommended that these ReST services are configured to be used in production environments secured with SSL connections.

Standard Request and Response Headers

The UI platform ReSTful web services have the following standard HTTP headers:

Name Value Required Description

Accept

application/json

OR

application/xml

Optional.

If a response payload is expected instead of just an appropriate HTTP status code

Tells the server the MIME-type of the resource.

Accept-Version

1.8.3

Yes

Depicts which version of the Platform Services is expected.

Accept-Versioning

false

No

Specified in the service request to bypass version validation

Accept-Language

en-US

No

Defaulted by most clients to the destination locale

Content-Type

application/json

OR

application/xml

Optional.

If a request payload is expected. Helps the server determine how to parse the request.

Informs the server during PUT or POST requests, of the format of the payload being sent.

Authorization

Base64 encoded credentials string

Yes

Authenticates a user agent with the server

Depending on the type of the operation or HTTP method, the corresponding response header is updated in the HTTP response with the following codes:

  • GET/READ : 200

  • PUT/CREATE : 201 created

  • POST/UPDATE : 204

  • DELETE : 204

Standard Error Response

Example response payload in case of service error is depicted below:

   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
   <messagesRDOes>
     <messagesRDO>
        <message>REST Service Version Mismatch</message>
        <messageType>ERROR</messageType>
        <status>BAD_REQUEST</status> 
    </messagesRDO>
   </messagesRDOes>
  • Message: The error message - translated.

  • MessageType: Value of 'ERROR' is returned.

  • Status: For a bad request or error, the status is BAD_REQUEST.

  • The http error code for an error response is 400

List of ReST Services

The ReST services exposed by the UI platform are accessible from the below URL for Merchandising cloud services. The URL to use is:

https://rex.retail.<Region Name>.ocs.oraclecloud.com/<Customer Subnamespace>/RmsPlatformServices/services/private/*

Notifications

Description URL HTTP Method

Creating Notifications

/Notifications/create

POST

Updating Notifications

/Notifications/update

PUT

Deleting Notifications

/Notifications/delete/{id}

DELETE

Fetch Notifications

/Notifications/fetch?appCode={appCode}

GET

Get number of unread Notifications

/Notifications/fetch/unreadCount?appCode={appCode}

GET

Search Notifications

/Notifications/search?appCode={appCode}

GET

Filter Notifications - Return list of Notifications

/Notifications/filter/list

POST

Filter Notifications - Return grouped list of Notifications

/Notifications/filter/group

POST

Filter Notifications - Return a summarized list of Notifications

/Notifications/filter/summarize

POST

Count Notifications matching the filter

/Notifications/filter/count

POST

Persist the Criteria

/Notifications/criteria

POST

Fetch the Criteria

/Notifications/fetch/criteria?appCode={appCode}

GET

Fetch Recipients

/Notifications/fetch/recipients/{id}

GET

Fetch Notification Context

/Notifications/fetch/context/{id}

GET

Fetch Notification Time Periods

/Notifications/fetch/timeperiods?appCode={appCode}

GET

Fetch Notification Hierarchy Levels

/Notifications/fetch/hierarchylevels?appCode={appCode}

GET

Fetch Notification Types

/Notifications/fetch/notificationtypes?appCode={appCode}

GET

Status update for multiple Notifications

/Notifications/update/multiple/status

PUT

Delete multiple Notifications

/Notifications/delete/multiple

POST