inRiver REST Proxy
Lift low-level inRiver API to a business-relevant level
The Challenge
System-Driven
Atomic
Complex to use
The rescue: Until inRiver can incorporate a more business-relevant API, BrainBoutique offers a REST Proxy to "lift" inRiver access to a business-relevant level:
- OpenAPI / Swagger definition
- Orchestrates low-level inRiver API and compiles information fragments into business-relevant representations
- Standard search / download / upload functionality for entity data
- Caching and monitoring
The integration is based on a flexible but business-relevant representation of all uploaded and downloaded information: The Canonical Data Format.
Canonical Data Format
To make your product data more relevant to Business, external recipients and other systems, a Canonical Data Format is uses to represent all data stored in inRiver.
In contrast to low-level key-value-pairs for inRiver "fields" per "entity", the aggregation level of the Canonical Model is a business-relevant level of aggregation. For example, all different sizes for a product can be exposed in one go.
For example, a SAP sourced product could be modeled as "Material" in inRiver with a set of ("included") entities of type "Color". The JSON representation of such a product could look like:
{ "MaterialSeriesName": "FASHION 1102", "MaterialGender": { "#": "FA", "en": "Female", "$": "Female" }, "MaterialStyleCode": { "#": "Mini", "en": "Mini", "$": "Mini" }, "MaterialSeries": "17309", "MaterialMaterialDescription": { "en": "Fashion 1102 Mini", "de": "Fashion 1102 Mini", "da": "Fashion 1102 Mini", ... }, "MaterialColors": [ { "ColorWashingInstructions": [ { "#": "8", "en": "machine wash 30°C", }, { "#": "17", "en": "Do not bleach", }, ... "ColorCode": { "#": "00AS", "en": "CARAMBOLE", "de": "CARAMBOLE", ... }, ... "ColorSKUData": [ { "SKUStatus": "40", "SKUGridId": "00AS000L", "SKUSizeDisplayNameINTL": "L", ... }, { "SKUStatus": "40", "SKUGridId": "00AS000M", "SKUSizeDisplayNameINTL": "M", ... }, ... ] }, { "ColorCode": { "#": "00GT", "en": "VANILLE", "de": "VANILLE", ... }, ... } ] }
The recipient of such a representation of inRiver data is not confronted with internal details on how the information is persisted. Especially, following aspects are represented in a way that does not require knowledge of the underlying system:
- Localized data
- Inline CVL ("Controlled Vocabulary List") data
- Relations traversed ("included" or "includes")
- ...and many more...
REST Proxy
Until inRiver is providing an integration-friendly version of the REST API, BrainBoutique is proud to provide a REST Proxy. Documented via OpenAPI (Swagger) it allows easy access to inRiver managed data:
- CRUD operations (including lookup based on business-relevant entity keys)
- Various output formats (JSON, CSV, ...)
- Data model caching
- Transparent security based on APIKey
OpenAPI specification - including Swagger frontend - is accessible via https://proxy.riverport.de/.
Please get in contact to obtain credentials for test-driving the functionality with your own data!
Swagger definition (snapshot):