REST Object API Read V1

Discouraged

With introduction of REST Object API Read V2 we discourage the usage of this version. Version 2 has improvements which optimize the performance of the api because the response is significantly smaller. Additionally to that, the structure is compatible with REST Object API Write

The object api provides a canonical rest api for entity items. Contrary to the ListAPI, the object api is optimized for single (multiple) item use and can return all data of the items in the full hierarchical form of them. It is not the correct api for mass data retrival of a small set of columns. Please use the ListApi for such use cases.

Read Requests

Single Item

URL Pattern

/object/{entity-identifier}/{entity_item}

Method

GET

Accept

application/json application/xml (default)

Example

/rest/V1.0/object/Article/4711@1

/rest/V1.0/object/Article/'myItem'@'myCatalog'

Return Codes

Code

Reason

200 (OK)

Everything went fine

404 (Not Found)

Object couldn't be found

403 (Forbidden)

User has no read permission for this object

500

Internal server error, please check the server logs

Multiple Items (since 10.1.0.02)

This endpoint provides a multi-item interface in which the client can provide multiple items which should be returned in one call. As query parameters do have a size limitation, this api is designed as POST. This api has restrictions on the number of items which can be called. In case the limit is exceeded a corresponding return code is provided.
Contrary to the single item GET request, a missing object permission or an unknown item id does not lead to an error return code; it will just not be returned.

URL Pattern

/object/{entity-identifier}/byItems

Method

POST

Headers

Header

Supported Values

Default

Accept

application/jsonapplication/xml

application/xml

Content-Type

    
application/x-www-form-urlencoded    

Form Parameters

Parameter

Datatype

Description

Example

items

List of ENTITY_ITEM

String based entity item syntax.

The form parameter can be provided multiple times and also
as a comma separated list or even a mix of both

items=4711@1items='myItem'@'myCatalog'items=4711@1,'myItem'@'myCatalog'

Example

/rest/V1.0/object/Article/byItems

Return Codes

Code

Reason

200 (OK)

Everything went fine

413 (Payload too large)

The amount of entity item ids exceeds the configured limit (default: 100).

The response contains the "p360-ObjectAPI-MaxItems" header which returns the limit.

500

Internal server error, please check the server logs

Query Parameters

Please note that the qualification filter applies to all requested sub-entities which have this qualification. So, for example, if you filter for language=English, the ArticleLang and ArticleAttributeValueLang entities will both only return the English values!

Parameter

Required

Default

Datatype

Parameter description

Example

entityFilter

no

none

String

Comma separated list of entity identifiers which should be part of the result. If omitted, the full object with all data is returned. We recommend to provide a list of entities which are required in order to gain performance.

Note: In case an entityFilter is provided, also the root entity is a filter value. So by only providing the root entity as filter value, only the fields of the root level are returned in the data.

Only return the root fields:
entityFilter=Article

Only return the root fields, and the sales prices
entityFilter=Article,ArticleSalesPrice

Only return the language specific data like Short and Long Description
entityFilter=ArticleLang

qualificationFilter

no

none

String

This parameter allows to restrict the output to certain qualifications. One example would be a filter so that only Euro and US-Dollar prices for the customer Informatica are returned.

The filter string is a comma-separated list of qualification settings. A qualification setting is a qualification name followed by a comma-separated list of values which is put into parentheses . The qualification name is defined in the repository and is included in the Meta-API.

Example for prices in Euro and US-Dollar and customer Informatica:
qualificationFilter=currency(EUR,USD),customer(Informatica)

revision

no

root

ENTITY_ITEM

The revision for which the data should be retrieved

revision='root'

revision=1

revision='myRevisionIdentifier'

revision=4711 (where 4711 is the internal id of the revision).

includeLabels

(available with 10.1.0.02)

no

false

boolean

If set to true, the returned document will contain _label elements for all fields or qualifications which have an enumeration. The label will be returned in the locale of the request like this:

"orderUnit" : {
"_current" : {
"_key" : {
"_entityId" : 3100,
"_internalId" : "932",
"_externalId" : "'C62'"
},
"_code" : "C62",
"_label" : "piece"
}
}

includeLabels=true

includeLabels=false

Permissions

Object Permissions

The user needs to have the READ object permission for this API. In case he doesn't, the api returns HTTP 403 (forbidden) in case of the single item call with GET, and skip this item in case of the multiple items call.

Field Permissions

The user needs to have the READ field permissions for a field. If he doesn't, the field will not be part of the data element, but no error is returned.

Qualification Permissions (aka Qualified Field Permissions)

The user needs to have the READ permission for a qualification, e.g. for Language = English. If he doesn't, sub-entities which are qualified for this will not be part of the data element, but no error is returned.

Result

Repository Entities and Fields

Names

A new repository property "shortIdentifier" has been added in the custom section which is used to define the entity and field names for the json structure. The short identifier is unique within its parent entity only!

The standard repository already contains a short identifier for all fields and enabled qualifications.

Datatypes

  • ENTITY_ITEM objects always contain the _entityId, _internalId and _externalId attributes

  • MIME_VALUE objects always contain the relative _filePath, the _label and the _mimeType

  • timestamp: ISO 8601, e.g.: 2012-04-23T18:25:43.511Z

  • date: ISO 8601, e.g.: 2019-07-04

  • numbers: standard JSON

  • "no value" is either provided as null, or the attribute is not in the document.

  • Empty string is returned as null, which is omitted when possible!

  • Enumeration fields

    • _key: always holds the unique key of the enumeration entry
      In case the enumeration field is of datatype ENTITY_ITEM, then the key will be provided with the ENTITY_ITEM syntax (see above)

    • _code: the external code of the enumeration entry, if the enum entry has one, and it differs from the key!

    • _label: the locale dependent label of the enumeration entry. Only if includeLabels is set to true. The locale of the http request is used for this.

Meta attributes

All meta attributes are prefixed with an underscore.

  • _entity = the root entity identifier

  • _entityItem = the entity item in the ENTITY_ITEM syntax

  • _revision = the revision of the data as ENTITY_ITEM

  • _data = The actual entity item's data

  • _current = the current value of the field
    As the structure of the document is similar to the EntityItemChange Document which is used for audit trail the _current attribute for the current value is required.

  • _qualification = the qualification of the record. The combination of the qualification values in the qualification object define this record as unique within its parent.

Data Element

In order to be part of the data element of the object api, a sub-entity or field must fulfill multiple criteria:

  • The entity or field must be active in the Repository

  • The entity or field must have supportsServiceApi = true in the Repository

  • The entity or field must have supportsAuditTrail = true in the Repository

  • The entity of field must have a shortIdentifier in the Repository

  • The user must have READ permission for the Entity or Field

  • The user must have READ permission for the qualification of the sub-entity

  • The field must must not be a password Field in the Repository

  • Qualifications must be editable in the Repository

Entities, Fields or Qualifications which do not comply to any of these points will be omitted in the data element. No exception is thrown.

Example Result

{
"_entity": "Article",
"_entityItem": {
"_internalId": "13989@1120",
"_entityId": 1000,
"_externalId": "\u0027supplierAID-840\u0027@\u0027NEW_CATALOG\u0027"
},
"_revision": {
"_internalId": "1",
"_entityId": 5600,
"_externalId": "\u0027root\u0027"
},
"_container": {
"_internalId": "1120",
"_entityId": 7000,
"_externalId": "\u0027NEW_CATALOG\u0027"
},
"_data": {
"article": {
"identifier": {
"_current": "supplierAID-840"
},
"manufacturerAID": {
"_current": "L000000000839"
},
"manufacturerName": {
"_current": "Rolex"
},
"deliveryTime": {
"_current": 3.8900
},
"orderUnit": {
"_current": {
"_key": {
"_entityId": 3100,
"_internalId": "145",
"_externalId": "\u0027AMH\u0027"
},
"_code": "AMH"
}
},
"contentUnit": {
"_current": {
"_key": {
"_entityId": 3100,
"_internalId": "310",
"_externalId": "\u0027GLL\u0027"
},
"_code": "GLL"
}
},
"noCUperOU": {
"_current": 842.3100
},
"priceQuantity": {
"_current": 219.5200
},
"quantityMin": {
"_current": 6.0000
},
"quantityInterval": {
"_current": 1.0000
},
"mainSupplier": {
"_current": {
"_key": {
"_entityId": 2800,
"_internalId": "3",
"_externalId": "\u0027Heiler Product Manager\u0027"
},
"_code": "Heiler Product Manager"
}
},
"currentStatus": {
"_current": {
"_key": 100,
"_code": "NEW"
}
},
"kitParent": {
"_current": false
},
"kitComponent": {
"_current": false
},
"soldOnlyInKits": {
"_current": false
},
"lang": [
{
"_qualification": {
"language": {
"_key": 9,
"_code": "eng"
}
},
"descriptionShort": {
"_current": "the little value he put on his own good qualities. Elizabeth was pleased to find that he had not betrayed the interference of his"
},
"descriptionLong": {
"_current": "practice. I have told Miss Bennet several times, that she will never play really well unless she practises more; and though Mrs. Collins has no instrument, she is very welcome, as I have often told her, to come to Rosings every day, and play on the pianoforte in Mrs. Jenkinson’s room. She would be in nobody’s way, you know, in that part of the house.” Mr. Darcy looked a little ashamed of his aunt’s ill-breeding, and made no answer. When coffee was over, Colonel Fitzwilliam reminded Elizabeth of having promised to play to him; and she sat down directly to the i"
},
"keywords": {
"_current": [
"MERCHANTIBILITY"
]
}
},
{
"_qualification": {
"language": {
"_key": 1046,
"_code": "por"
}
},
"descriptionShort": {
"_current": "daughters. Mr. Collins was punctual to his time, and was receive"
},
"descriptionLong": {
"_current": "against herself; and his disappointed feelings became the object of compassion. His attachment excited gratitude, his general character respect; but she could not approve him; nor could she for a moment repent her refusal, or feel the slightest inclination ever to see him again. In her own past behaviour, there was a constant source of vexation and regret; and in the unhappy defects of her family, a subject of yet heavier chagrin. They were hopeless of remedy. Her father, contented with laughing at them, would never exert himself to restrain the wild giddiness of his youngest daughters; and her mother, with manners so far fr"
},
"keywords": {
"_current": [
"busy",
"_particularly_",
"nowhere"
]
}
},
{
"_qualification": {
"language": {
"_key": 7,
"_code": "deu"
}
},
"descriptionShort": {
"_current": "has now living, better than any other person.” Elizabeth was at no loss to understand from whence this defe"
},
"descriptionLong": {
"_current": "or expense to the user, provide a copy, a means of exporting a copy, or a means of obtaining a copy upon request, of the work in its original “Plain Vanilla ASCII” or other form. Any alternate format must include the full Project Gutenberg-tm License as specified in paragraph 1.E.1. 1.E.7. Do not charge a fee for access to, viewing, displaying, performing, copying or distributing any Project Gutenberg-tm works unless you comply with p"
}
}
],
"pricePurchase": [
{
"_qualification": {
"supplier": {
"_key": {
"_entityId": 2800,
"_internalId": "3",
"_externalId": "\u0027Heiler Product Manager\u0027"
},
"_code": "Heiler Product Manager"
},
"type": {
"_key": 1,
"_code": "net_list"
},
"currency": {
"_key": "USD"
},
"territory": {
"_key": "DE"
}
},
"validFrom": {
"_current": "1899-12-30"
},
"validTo": {
"_current": "9999-12-31"
},
"value": [
{
"_qualification": {
"lowerBound": 1.0000
},
"amount": {
"_current": 872327.120000
},
"factor": {
"_current": 1.0000
}
}
]
},
{
"_qualification": {
"supplier": {
"_key": {
"_entityId": 2800,
"_internalId": "3",
"_externalId": "\u0027Heiler Product Manager\u0027"
},
"_code": "Heiler Product Manager"
},
"type": {
"_key": 2,
"_code": "gross_list"
},
"currency": {
"_key": "CHF"
},
"territory": {
"_key": "DE"
}
},
"validFrom": {
"_current": "1899-12-30"
},
"validTo": {
"_current": "9999-12-31"
},
"value": [
{
"_qualification": {
"lowerBound": 3.0000
},
"amount": {
"_current": 239011.140000
},
"factor": {
"_current": 1.0000
}
}
]
}
],
"priceSales": [
{
"_qualification": {
"customer": {
"_key": {
"_entityId": 2800,
"_internalId": "1",
"_externalId": "\u0027Public\u0027"
}
},
"type": {
"_key": 3,
"_code": "net_customer"
},
"currency": {
"_key": "CHF"
},
"territory": {
"_key": "DE"
}
},
"validFrom": {
"_current": "1899-12-30"
},
"validTo": {
"_current": "9999-12-31"
},
"value": [
{
"_qualification": {
"lowerBound": 2.0000
},
"amount": {
"_current": 60216.410000
},
"factor": {
"_current": 1.0000
}
}
]
}
],
"logistic": [
{
"_qualification": {
"territory": {
"_key": "CH"
}
},
"packageUnit": {
"_current": {
"_key": {
"_entityId": 3100,
"_internalId": "747",
"_externalId": "\u0027NEW\u0027"
},
"_code": "NEW"
}
},
"packageWeight": {
"_current": 36.5000
},
"originCountry": {
"_current": {
"_key": "BB"
}
},
"grossWeight": {
"_current": 43.9700
},
"grossWeightUnit": {
"_current": {
"_key": {
"_entityId": 3100,
"_internalId": "723",
"_externalId": "\u0027MON\u0027"
},
"_code": "MON"
}
}
}
],
"logisticExtension": [
{
"_qualification": {
"party": {
"_key": {
"_entityId": 2800,
"_internalId": "3",
"_externalId": "\u0027Heiler Product Manager\u0027"
},
"_code": "Heiler Product Manager"
},
"packagingUnit": {
"_key": {
"_entityId": 3100,
"_internalId": "380",
"_externalId": "\u00275\u0027"
},
"_code": "5"
},
"language": {
"_key": 10,
"_code": "esl"
}
},
"code128": {
"_current": "62243677464153991935"
},
"code39": {
"_current": "25028067122421819836"
},
"length": {
"_current": 52873820.0761
},
"lengthUnit": {
"_current": {
"_key": {
"_entityId": 3100,
"_internalId": "936",
"_externalId": "\u0027AR\u0027"
},
"_code": "AR"
}
},
"height": {
"_current": 6794560.1841
},
"heightUnit": {
"_current": {
"_key": {
"_entityId": 3100,
"_internalId": "7053",
"_externalId": "\u0027X_PPC\u0027"
},
"_code": "X_PPC"
}
}
}
],
"referencedItem": [
{
"_qualification": {
"type": {
"_key": 8,
"_code": "diff_orderunit"
},
"referencedIdentifier": "supplierAID-648",
"referencedCatalogIdentifier": "NEW_CATALOG"
},
"referencedItem": {
"_current": {
"_entityId": 1000,
"_internalId": "14452@1120",
"_externalId": "\u0027supplierAID-648\u0027@\u0027NEW_CATALOG\u0027"
}
},
"quantity": {
"_current": 1
}
}
],
"structureMap": [
{
"_qualification": {
"structure": {
"_key": 15,
"_code": "ECLASS-6.1"
}
},
"structureGroups": {
"_current": [
{
"_entityId": 3000,
"_internalId": "23576@15",
"_externalId": "\u0027AKL316004\u0027@\u0027ECLASS-6.1\u0027"
}
]
}
}
],
"structureGroupMap": [
{
"_qualification": {
"structure": {
"_key": {
"_entityId": 2300,
"_internalId": "15",
"_externalId": "\u0027ECLASS-6.1\u0027"
},
"_code": "ECLASS-6.1"
},
"structureGroup": {
"_entityId": 3000,
"_internalId": "23576@15",
"_externalId": "\u0027AKL316004\u0027@\u0027ECLASS-6.1\u0027"
}
},
"sequence": {
"_current": 2147483647
}
}
],
"mediaAsset": [
{
"_qualification": {
"type": {
"_key": "logo"
}
},
"name": {
"_current": "be the meaning of it? It"
},
"category": {
"_current": "nonproprietary"
},
"mediaAsset": {
"_current": {
"_entityId": 2400,
"_internalId": "250",
"_externalId": "\u0027MediaAsset_1596466573432152\u0027"
}
},
"document": [
{
"_qualification": {
"quality": {
"_key": "highres"
},
"language": {
"_key": 7,
"_code": "deu"
}
},
"identifier": {
"_current": "hlr-system/nhvjsixjcjucktt.jpg"
},
"imageIdentifier": {
"_current": "hlr-system/nhvjsixjcjucktt.jpg"
},
"order": {
"_current": 1
}
}
]
},
{
"_qualification": {
"type": {
"_key": "thumbnail"
}
},
"name": {
"_current": "from Jane. “I do not know whe"
},
"category": {
"_current": "counterbalance"
},
"mediaAsset": {
"_current": {
"_entityId": 2400,
"_internalId": "255",
"_externalId": "\u0027MediaAsset_1596466573432157\u0027"
}
},
"document": [
{
"_qualification": {
"quality": {
"_key": "highres"
},
"language": {
"_key": 56,
"_code": "kor"
}
},
"identifier": {
"_current": "hlr-system/ajomgjomrxyjews.jpg"
},
"imageIdentifier": {
"_current": "hlr-system/ajomgjomrxyjews.jpg"
},
"order": {
"_current": 1
}
}
]
}
],
"log": [
{
"_qualification": {
"channel": {
"_key": "100_classifier.id"
}
},
"creationDate": {
"_current": "2020-10-07T13:56:25.990Z"
},
"creationUser": {
"_current": {
"_key": {
"_entityId": 2600,
"_internalId": "1",
"_externalId": "\u0027Administrator\u0027"
}
}
},
"deletionDate": {
"_current": "9999-12-31T00:00:00.000Z"
}
},
{
"_qualification": {
"channel": {
"_key": "HPM"
}
},
"creationDate": {
"_current": "2020-10-07T13:56:25.990Z"
},
"creationUser": {
"_current": {
"_key": {
"_entityId": 2600,
"_internalId": "1",
"_externalId": "\u0027Administrator\u0027"
}
}
},
"deletionDate": {
"_current": "9999-12-31T00:00:00.000Z"
}
},
{
"_qualification": {
"channel": {
"_key": "101_classifier.id"
}
},
"creationDate": {
"_current": "2020-10-07T13:56:25.990Z"
},
"creationUser": {
"_current": {
"_key": {
"_entityId": 2600,
"_internalId": "1",
"_externalId": "\u0027Administrator\u0027"
}
}
},
"deletionDate": {
"_current": "9999-12-31T00:00:00.000Z"
}
}
],
"ownLog": [
{
"modificationDate": {
"_current": "2020-10-07T13:56:26.010Z"
}
}
],
"nutrient": [
{
"_qualification": {
"targetMarket": {
"_key": "CA"
},
"preparationState": {
"_key": "READY_TO_EAT"
}
},
"lang": [
{
"_qualification": {
"language": {
"_key": 12,
"_code": "fra"
}
},
"servingSizeDescription": {
"_current": "of general complaisance, and in all that he said she heard an accent so removed from _hauteur_ or disdain"
},
"dailyValueIntakeReference": {
"_current": "said Elizabeth, struck with other ideas. “She looks sickly and cross. Yes, she will do for"
}
},
{
"_qualification": {
"language": {
"_key": 16,
"_code": "ita"
}
},
"servingSizeDescription": {
"_current": "her mother. “And then when you go away, you may leave one or two of my sisters behind you; and I dare say I shall get husbands for them before the winter is over.” “I thank you for my share of the favour,” said Elizabeth; “but I do not particularly like your way of getting husbands.” Their visitors were not to remain above ten days with them. Mr. Wickham had received his commission before he"
},
"dailyValueIntakeReference": {
"_current": "duty of a young man who has been so fortunate as I have been in early preferment; and I trust I am resigned. Perhaps not the less so from feeling a doubt of my positive happiness had my fair cousin honoured me with her hand; for I have often observed that resignation is n"
}
}
]
}
],
"_characteristicRecords": [
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12424",
"_externalId": "\u0027isHomogenised\u0027"
},
"_code": "isHomogenised"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "1209@121",
"_externalId": "\u0027FALSE\u0027@\u0027NonBinaryLogicCodes\u0027"
}
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12441",
"_externalId": "\u0027nutrientFormatTypeCodeReference\u0027"
},
"_code": "nutrientFormatTypeCodeReference"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "3494@151",
"_externalId": "\u0027AB\u0027@\u0027nutrientFormatTypeCodeReference\u0027"
}
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12377",
"_externalId": "\u0027juiceContentPercentage\u0027"
},
"_code": "juiceContentPercentage"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "DECIMAL",
"_formatPattern": "###.##",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
3169.03
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12339",
"_externalId": "\u0027fatPercentageInDryMatter\u0027"
},
"_code": "fatPercentageInDryMatter"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "DECIMAL",
"_formatPattern": "##.###",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
4176.55
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12340",
"_externalId": "\u0027isRindEdible\u0027"
},
"_code": "isRindEdible"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "1296@121",
"_externalId": "\u0027NOT_APPLICABLE\u0027@\u0027NonBinaryLogicCodes\u0027"
}
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12337",
"_externalId": "\u0027cheeseMaturationPeriodDescription\u0027"
},
"_code": "cheeseMaturationPeriodDescription"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "TEXT",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": 17,
"_code": "jpn"
}
},
"values": {
"_current": [
"of his confidence in his friend. How grievous then was the"
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12338",
"_externalId": "\u0027cheeseMaturationProcessContainerTypeCode\u0027"
},
"_code": "cheeseMaturationProcessContainerTypeCode"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "2062@123",
"_externalId": "\u0027BRINE_SOLUTION\u0027@\u0027cheeseMaturationProcessContainerTypeCode\u0027"
}
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12375",
"_externalId": "\u0027ingredientOfConcernCode\u0027"
},
"_code": "ingredientOfConcernCode"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "2720@136",
"_externalId": "\u0027RAW_MILK\u0027@\u0027ingredientOfConcernCode\u0027"
}
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12376",
"_externalId": "\u0027ingredientStatement\u0027"
},
"_code": "ingredientStatement"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "TEXT",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": 11,
"_code": "fin"
}
},
"values": {
"_current": [
"anything about it, they found at last, on examining th"
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12341",
"_externalId": "\u0027surfaceOfCheeseAtEndOfRipeningCode\u0027"
},
"_code": "surfaceOfCheeseAtEndOfRipeningCode"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "1913@122",
"_externalId": "\u0027NO_RIND\u0027@\u0027surfaceOfCheeseAtEndOfRipeningCode\u0027"
}
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12342",
"_externalId": "\u0027dietTypeDescription\u0027"
},
"_code": "dietTypeDescription"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "TEXT",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": 4,
"_code": "chi"
}
},
"values": {
"_current": [
"and, for a few moments, she flattered herself tha"
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12555",
"_externalId": "\u0027doPackagingMaterialContainLatex\u0027"
},
"_code": "doPackagingMaterialContainLatex"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "1294@121",
"_externalId": "\u0027TRUE\u0027@\u0027NonBinaryLogicCodes\u0027"
}
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12556",
"_externalId": "\u0027numberOfPackagesForSerPiecesGTIN\u0027"
},
"_code": "numberOfPackagesForSerPiecesGTIN"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "INTEGER",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
4410
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12332",
"_externalId": "\u0027fatInMilkContent\u0027"
},
"_code": "fatInMilkContent"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "DECIMAL",
"_formatPattern": "##.###",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
58.92
]
}
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "12333",
"_externalId": "\u0027rennetTypeCode\u0027"
},
"_code": "rennetTypeCode"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_datatype": "LOOKUP",
"order": {
"_current": 1
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "1931@126",
"_externalId": "\u0027VEGETABLE_RENNET\u0027@\u0027rennetTypeCode\u0027"
}
]
}
}
]
}
]
}
}
}

Characteristic Values

Characteristic values are rendered in a specialized structure in order to honor their hierarchical nature.
This structure is not identical to the repository as it is fully hierarchical. This is the reason for extra meta attributes which help to not get in conflict with repository based data.

Additional Meta Attributes

  • _characteristicRecords
    Top level element for all characteristic records

  • _recordLang
    Language specific record values. In case the characteristic is not language specific, the qualification for "not language specific" is returned (-1 or xxz)
    In case the value of the record is a lookup value and the includeLabels parameter has been set, an additional _label element is provided.

  • _children
    children of the current characteristic record

  • _datatype
    The characteristic data type - to be able to interpret the values even in case the characteristic is no longer in the system

  • _formatPattern
    The format pattern of the characteristic - to be able to format the values even in case the characteristic is no longer in the system

Characteristic Records Example

{
"_entity": "Article",
"_entityItem": {
"_internalId": "13989@1120",
"_entityId": 1000,
"_externalId": "\u0027supplierAID-840\u0027@\u0027NEW_CATALOG\u0027"
},
"_revision": {
"_internalId": "1",
"_entityId": 5600,
"_externalId": "\u0027root\u0027"
},
"_container": {
"_internalId": "1120",
"_entityId": 7000,
"_externalId": "\u0027NEW_CATALOG\u0027"
},
"_data": {
"article": {
"identifier": {
"_current": "supplierAID-841"
},
"_characteristicRecords": [
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "7",
"_externalId": "\u0027AnimalIngredient\u0027"
},
"_code": "AnimalIngredient"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "root"
},
"_dataType": "LOOKUP",
"order": {
"_current": -32767
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "23@5",
"_externalId": "\u0027Down\u0027@\u0027AnimalIngredient\u0027"
}
]
}
}
],
"_children": [
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "8",
"_externalId": "\u0027CertDown\u0027"
},
"_code": "CertDown"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "0000.0000.RK"
},
"_dataType": "LOOKUP",
"order": {
"_current": -32766
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "25@6",
"_externalId": "\u0027Other\u0027@\u0027CertDown\u0027"
}
]
}
}
],
"_children": [
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "11",
"_externalId": "\u0027CertDownExpDate\u0027"
},
"_code": "CertDownExpDate"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "0000.0000.RK"
},
"_dataType": "DATE",
"order": {
"_current": -32765
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
"1977-05-28"
]
}
}
]
}
]
},
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "8",
"_externalId": "\u0027CertDown\u0027"
},
"_code": "CertDown"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "0000.0000.RK"
},
"_dataType": "LOOKUP",
"order": {
"_current": -32766
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "25@6",
"_externalId": "\u0027Other\u0027@\u0027CertDown\u0027"
}
]
}
}
],
"_children": [
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "11",
"_externalId": "\u0027CertDownExpDate\u0027"
},
"_code": "CertDownExpDate"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "0000.0000.RK"
},
"_dataType": "DATE",
"order": {
"_current": -32765
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
"1977-05-28"
]
}
}
]
}
]
}
]
}
],
"_children": [
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "8",
"_externalId": "\u0027CertDown\u0027"
},
"_code": "CertDown"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "0000.0000.RK"
},
"_dataType": "LOOKUP",
"order": {
"_current": -32766
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
{
"_entityId": 7300,
"_internalId": "25@6",
"_externalId": "\u0027Other\u0027@\u0027CertDown\u0027"
}
]
}
}
],
"_children": [
{
"_qualification": {
"characteristic": {
"_key": {
"_entityId": 8000,
"_internalId": "11",
"_externalId": "\u0027CertDownExpDate\u0027"
},
"_code": "CertDownExpDate"
},
"recordKey": "0000.0000.RK",
"parentRecordKey": "0000.0000.RK"
},
"_dataType": "DATE",
"order": {
"_current": -32765
},
"_recordLang": [
{
"_qualification": {
"language": {
"_key": -1,
"_code": "zxx"
}
},
"values": {
"_current": [
"1977-05-28"
]
}
}
]
}
]
}
]
}
}
}

Examples

Please see the attached postman example collection for you convenience: ObjectAPI.postman_collection.json

Get Item by ID
curl --location --request GET 'http://localhost:1512/rest/V1.0/object/Article/14260@1120' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cmVzdDpoZWlsZXI='
Get Item by Identifier As XML
curl --location --request GET 'http://localhost:1512/rest/V1.0/object/Article/'\''supplierAID-42'\''@'\''MySupplierCatalog'\''' \
--header 'Content-Type: application/xml' \
--header 'Authorization: Basic cmVzdDpoZWlsZXI='
Get Filtered Item (entity and qualification filter)
curl --location --request GET 'http://localhost:1512/rest/V1.0/object/Article/'\''supplierAID-42'\''@'\''MySupplierCatalog'\''?qualificationFilter=language(eng)&entityFilter=ArticleLang' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cmVzdDpoZWlsZXI='