Schema
Retrieves all schemas. You can filter the results with query parameters.
Your Emporix tenant's name.
Note: Always write the tenant name in lowercase.
^[a-z][a-z0-9]+$Page number to be retrieved. The number of the first page is 1.
1Number of items to be retrieved per page.
60List of properties used to sort the results, separated by colons. The order of properties indicates their priority in sorting.
Possible values:
{fieldName}{fieldName}:asc{fieldName}:desc
Note: If you want to sort the results by localized properties, the possible values are:
{fieldName}.{language}{fieldName}.{language}:asc{fieldName}.{language}:desc
If the sorting direction is not specified, the fields are sorted in ascending order.
A standard query parameter is used to search for specific values.
- Searching for items by string-based properties:
- By a field value:
q=siteCode:main, wheresiteCodeis the field name, andmainis its desired value. - By a localized field value:
q=items.product.name.en:apple_lobo, wherenameis the field name of product,enis the language code, andapple_lobois the field value expressed in the specified language. Note: This query works only for localized fields, which are stored in a map format, wherekeyis the language code andvalueis the translation to particular language.
- By a field value:
- Searching for items by a number-based property:
- With a specific value:
q=items.quantity.quantity:20 - With a value greater than:
q=items.quantity.quantity:>20 - With a value lower than:
q=items.quantity.quantity:<20 - With a value greater than or equal to:
q=items.quantity.quantity:>=20 - With a value lower than or equal to:
q=items.quantity.quantity:<=20 - With a value within a range of values:
q=items.quantity.quantity:(>=10 AND <=20)
whereitems.quantity.quantityis the name of the number-based field, and20is its querying value.
- With a specific value:
- Searching for items by a date-based property: All number-based property queries are also valid for dates. In that case, the date should be placed within double quotes:
q=metadataCreatedAt:(>="2021-05-18T07:27:27.455Z" AND <"2021-05-20T07:27:27.455Z") - Searching for items by a boolean-based property:
q=description.multiLanguage:true, wheredescription.multiLanguageis the boolean field name, andtrueis its desired value. - Searching for items with a nonexistent or empty property:
q=description.en:null, wheredescription.enis the field that has its value set tonull. - Searching for items with an existing property:
q=mixin:exists, wheremixinis the field that has a non-empty value. - Searching for items by multiple specific values:
q=id:(5c3325baa9812100098ff48f,5c3325d1a9812100098ff494), whereidis the field name, and strings within the bracket are the desired values. - Searching for items by multiple fields:
q=id:5c3325baa9812100098ff48f siteCode:mainwhereidandsiteCodeare field names. All objects that contain the specified values are returned. Multiple fields (separated by space) can be specified. Multiple values for each field can also be specified in the format presented earlier. - Searching for items with string-based properties conforming to a regex:
q=siteCode:~ainorq=code:(~U PL)- in case of searching for strings with space, wheresiteCodeis the name of the field, andainorU PLis its querying regex. - Searching for items with a localized string-based property conforming to a regex:
items.product.name.en:~(Yoghurt im)- wherenameis the product field name,enis the desired language, andJoghurt imis the search term.
siteCode:{main}Fields to be included in the response.
Filters schemas by type. Possible types to specify, CART, CATEGORY, COMPANY, COUPON, CUSTOMER, CUSTOMER.ADDRESS, ORDER, PRODUCT, QUOTE, RETURN, PRICE_LIST, CUSTOM_ENTITY. When the newest version of the schema is of different type than the previous one and the previous one matches the type specified in this query param, then the previous version is returned.
Flag indicating whether the total number of retrieved items should be returned.
falseExample: trueList of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields. If a value is specified, then it must be present in the tenant configuration.
- If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
- If the header is set to
*, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages. - If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
Unsupported language provided.
Given request is unauthorized - the authorization token is invalid or has expired. It usually means that the tenant from the token does not match tenant from path.
Permission denied due to insufficient rights. This may happen when the request does not contain sufficient scopes for the given query values.
GET /schema/{tenant}/schemas HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"id": "64d35aa7fa54121ca47db657",
"name": {
"en": "Product Custom Attributes"
},
"attributes": [
{
"key": "weight",
"name": {
"en": "Weight of a product"
},
"description": {
"en": "The exact weight of a product in grams."
},
"type": "NUMBER",
"metadata": {
"readOnly": true,
"localized": false,
"required": true
}
}
],
"types": [
"PRODUCT"
],
"metadata": {
"version": 1,
"createdAt": "2023-08-09T09:21:42.693Z",
"modifiedAt": "2023-08-09T09:21:42.693Z",
"url": "https://res.cloudinary.com/saas-ag/raw/upload/schemata2/saastest2/64d35aa7fa54121ca47db657_v1.json"
}
}
]Your Emporix tenant's name.
Note: Always write the tenant name in lowercase.
^[a-z][a-z0-9]+$The Content-Language request HTTP header defines language(s) of the payload.
deThe request was successful. The Schema has been created.
Unsupported content language provided.
Given request is unauthorized - the authorization token is invalid or has expired. It usually means that the tenant from the token does not match tenant from path.
Permission denied due to insufficient rights. This may happen when the request does not contain sufficient scopes for the given query values.
Conflict.
POST /schema/{tenant}/schemas HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 685
{
"name": {
"en": "Product Custom Attributes"
},
"types": [
"PRODUCT"
],
"attributes": [
{
"key": "weight",
"name": {
"en": "Weight of a product"
},
"description": {
"en": "The exact weight of a product in grams."
},
"type": "TEXT",
"metadata": {
"readOnly": true,
"required": true
}
},
{
"key": "size",
"name": {
"en": "Size of a product"
},
"description": {
"en": "The exact size of a product. Possible values are S, M, L."
},
"type": "ENUM",
"metadata": {
"readOnly": true,
"required": true
},
"values": [
{
"value": "S"
},
{
"value": "M"
},
{
"value": "L"
}
]
},
{
"key": "advertisement",
"name": {
"en": "Advertisement of a product"
},
"description": {
"en": "A localized advertisement of a product."
},
"type": "TEXT",
"metadata": {
"localized": true,
"required": true
}
}
]
}{
"id": "e241dc9e-a3f6-4573-bb01-a8ae21d2d4ae"
}Retrieves a single schema.
Your Emporix tenant's name.
Note: Always write the tenant name in lowercase.
^[a-z][a-z0-9]+$Unique identifier of the entity.
Version of the entity.
1List of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields. If a value is specified, then it must be present in the tenant configuration.
- If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
- If the header is set to
*, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages. - If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
Given request is unauthorized - the authorization token is invalid or has expired. It usually means that the tenant from the token does not match tenant from path.
Permission denied due to insufficient rights. This may happen when the request does not contain sufficient scopes for the given query values.
Given resource cannot be found.
GET /schema/{tenant}/schemas/{id} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"id": "64d35aa7fa54121ca47db657",
"name": {
"en": "Product Custom Attributes"
},
"attributes": [
{
"key": "weight",
"name": {
"en": "Weight of a product"
},
"description": {
"en": "The exact weight of a product in grams."
},
"type": "NUMBER",
"metadata": {
"readOnly": true,
"localized": false,
"required": true
}
}
],
"types": [
"PRODUCT"
],
"metadata": {
"version": 1,
"createdAt": "2023-08-09T09:21:42.693Z",
"modifiedAt": "2023-08-09T09:21:42.693Z",
"url": "https://res.cloudinary.com/saas-ag/raw/upload/schemata2/saastest2/64d35aa7fa54121ca47db657_v1.json"
}
}Updates a single schema. Each update releases a new version of json schema file.
Required scopes
schema.schema_manage
Your Emporix tenant's name.
Note: Always write the tenant name in lowercase.
^[a-z][a-z0-9]+$Unique identifier of the entity.
Version of the entity.
1The Content-Language request HTTP header defines language(s) of the payload.
deNo content
No content
Unsupported content language provided.
Given request is unauthorized - the authorization token is invalid or has expired. It usually means that the tenant from the token does not match tenant from path.
Permission denied due to insufficient rights. This may happen when the request does not contain sufficient scopes for the given query values.
Given resource cannot be found.
Conflict.
PUT /schema/{tenant}/schemas/{id} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 710
{
"name": {
"en": "Product Custom Attributes"
},
"types": [
"PRODUCT"
],
"attributes": [
{
"key": "weight",
"name": {
"en": "Weight of a product"
},
"description": {
"en": "The exact weight of a product in grams."
},
"type": "TEXT",
"metadata": {
"readOnly": true,
"required": true
}
},
{
"key": "size",
"name": {
"en": "Size of a product"
},
"description": {
"en": "The exact size of a product. Possible values are S, M, L."
},
"type": "ENUM",
"metadata": {
"readOnly": true,
"required": true
},
"values": [
{
"value": "S"
},
{
"value": "M"
},
{
"value": "L"
}
]
},
{
"key": "advertisement",
"name": {
"en": "Advertisement of a product"
},
"description": {
"en": "A localized advertisement of a product."
},
"type": "TEXT",
"metadata": {
"localized": true,
"required": true
}
}
],
"metadata": {
"version": 1
}
}No content
Deletes a single schema. It deletes just a database entry. The cloudinary reference file remains untouched.
Required scopes
schema.schema_manage
Your Emporix tenant's name.
Note: Always write the tenant name in lowercase.
^[a-z][a-z0-9]+$Unique identifier of the entity.
Version of the entity.
1No content
No content
Given request is unauthorized - the authorization token is invalid or has expired. It usually means that the tenant from the token does not match tenant from path.
Permission denied due to insufficient rights. This may happen when the request does not contain sufficient scopes for the given query values.
DELETE /schema/{tenant}/schemas/{id} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
No content
Validates and parses provided json schema file. When the file is valid, it returns a json which can be used either to create a new schema via POST operation or to update an existing one via PUT operation when all the missing fields are provided. It doesn't create any file and it doesn't crease a database entity.
Your Emporix tenant's name.
Note: Always write the tenant name in lowercase.
^[a-z][a-z0-9]+$Content of the file.
Id of the existing schema. Should be null when there is no existing schema.
The request was successful. The file was validated and parsed correctly.
Unsupported content language provided.
Given request is unauthorized - the authorization token is invalid or has expired. It usually means that the tenant from the token does not match tenant from path.
Permission denied due to insufficient rights. This may happen when the request does not contain sufficient scopes for the given query values.
POST /schema/{tenant}/schemas/file HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 23
{
"file": {},
"id": "text"
}{
"id": "64d35aa7fa54121ca47db657",
"name": {
"en": "Product Custom Attributes"
},
"attributes": [
{
"key": "weight",
"type": "NUMBER",
"metadata": {
"readOnly": true,
"localized": false,
"required": true
}
}
],
"metadata": {
"version": 1
}
}Was this helpful?

