Appearance
HATEOAS
The iPIM Server REST API make use of the principles of hateoas although using *URI variables instead of the standard _links variable.
The idea is that each returned resource also contains links to resources somehow related to the current resource, or links for progress tracking.
Examples:
Related Resources Links:
The product resource response for instance contains itemsURI with a link to the corresponding items resources, itemURIs with a list of links to each corresponding item resource and dimensionURIs with a list of links to each corresponding dimension resource.
jsonGET .../iPIM/rest/api/product/100990json{ "productNo": "100990", "description": "Product 100990", "category": { "pimRef": "1", "parentPimRef": "1", "identifier": "CATALOG", "descriptions": [ { "text": "iPIM Classification", "lang": "en_GB" }, { "text": "Klassifikation", "lang": "de_DE" } ], "sequenceNo": 1, "categoryURI": "/iPIM/rest/api/categories/CATALOG?versionIdentifier=VER_EK", "versionIdentifier": "VER_EK" }, "objectType": "ARTICLE_TYPE_PRODUCT", "itemURIs": [ "/iPIM/rest/api/items/100990%20BLAU%20L", "/iPIM/rest/api/items/100990%20BLAU%20M", "/iPIM/rest/api/items/100990%20BLAU%20XL", "/iPIM/rest/api/items/100990%20BLAU%20XXL", "/iPIM/rest/api/items/100990%20BLAU%20XXXL", "/iPIM/rest/api/items/100990%20GRUEN%20L", "/iPIM/rest/api/items/100990%20GRUEN%20M", "/iPIM/rest/api/items/100990%20GRUEN%20XL", "/iPIM/rest/api/items/100990%20GRUEN%20XXL", "/iPIM/rest/api/items/100990%20GRUEN%20XXXL", "/iPIM/rest/api/items/100990%20ROT%20L", "/iPIM/rest/api/items/100990%20ROT%20M", "/iPIM/rest/api/items/100990%20ROT%20XL", "/iPIM/rest/api/items/100990%20ROT%20XXL", "/iPIM/rest/api/items/100990%20ROT%20XXXL", "/iPIM/rest/api/items/7000001301", "/iPIM/rest/api/items/7000000500", "/iPIM/rest/api/items/7000001302" ], "dimensionURIs": [ "/iPIM/rest/api/dimensions/8000000104", "/iPIM/rest/api/dimensions/8000000103", "/iPIM/rest/api/dimensions/8000000002", "/iPIM/rest/api/dimensions/8000000000", "/iPIM/rest/api/dimensions/8000000001" ], "selfURI": "/iPIM/rest/api/products/100990", "itemsURI": "/iPIM/rest/api/items?itemNos=100990%20BLAU%20L%2C100990%20BLAU%20M%2C100990%20BLAU%20XL%2C100990%20BLAU%20XXL%2C100990%20BLAU%20XXXL%2C100990%20GRUEN%20L%2C100990%20GRUEN%20M%2C100990%20GRUEN%20XL%2C100990%20GRUEN%20XXL%2C100990%20GRUEN%20XXXL%2C100990%20ROT%20L%2C100990%20ROT%20M%2C100990%20ROT%20XL%2C100990%20ROT%20XXL%2C100990%20ROT%20XXXL%2C7000001301%2C7000000500%2C7000001302" }Progress Tracking Links:
Some resource responses contain URI with a link for tracking the progress of an asynchronous action or process. This link can either be in the response body or part of the response header
Progress-Location.jsonPOST .../iPIM/rest/api/assetexport/exportassetsRequest:
json{ "asynchronousMode": false, "serviceCaller": "iPIM Buy", "assetExportProfileIdentifier": "ORIGINAL_FORMAT", "assetTitles": [ "985652.jpg" ] }Response Body:
json{ "targetAssetExportPaths": [ "/home/ipim/data/assetexport/8f5e1148-980b-40c6-a0c3-bb13b5fd70f8_985652.jpg" ] }Response Header:
jsonProgress-Location /processes/10062516

