
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):

