# ComponentController
# Overview
# Description
Path /v2/components
Handles all request regarding component: creating, updating, deleting.
# Component JSON Object
An example for a component JSON object.
{
"externalIdentifier": "door_1",
"catalog": "roomle_white_furniture",
"id": "roomle_white_furniture:door_1",
"type": "door",
"detailType": "other",
"configuration": "a configuration JSON which describes this configuration.",
"restrictionsForCore": "Json array of restrictions to be forwarded to the core",
"active": false,
"updated": "2016-06-01T07:54:07.000Z",
"created": "2016-01-13T11:25:17.000Z",
"perspectiveImage": "https://url-of-perspectiveImage",
"labels": [],
"orderable": false,
"label": "Door",
"language": "en",
"links": {
"tags": "/components/roomle_white_furniture:door_1/tags"
},
"version": 0
}
# fields
- externalIndentifier
- catalog
- id
- type
- detailType
- configuration
- restrictionsForCore
- active
- updated
- created
- prespectiveImage
- labels
- orderable
- label
- language
- links
- version
# API Reference
# GET /:id
Generates: json
Returns a specific component.
Response:
Component objects are described in section Component JSON Object
{
"component": componentObject
}
# POST /
Creates a new component.
Accepts: application/json Generates: application/json
Response: Component object as described in section Component JSON Object
{
"component": componentObject
}
# PUT /:id
Updates an existing component.
Accepts: application/json Generates: application/json
Response: Component object as described in section Component JSON Object
{
"component": componentObject
}
# GET /:id/tags
Generates: json
Returns all tags which have are assigned to this component.
Response:
Tag objects are described in section Tag JSON Object
{
"tags": [
tagObject1,
tagObject2,
...
],
"meta": {
"total": 2,
"serverTime": "2019-03-14T13:02:37.222Z"
}
}
# Component restrictions
Path /v2/components/:id
Restrictions are used to restrict views from showing parameters, parameter-values or addons. A Restriction contains
- embedId or tenantId : defines where this restriction applies. Either the given tenant in roomle, or the embedding (configurator). if none is given the restriction is global.
- fromOwner : defines if this restriction is managed by the owner of the catalog, if false, the owner of the target tenant/embed manages it.
- active : if this restriction is currently active
- restrictionTarget : "parameter", "valueIn:
" or "addOn" what to apply this restriction on - restrictionType : EXCLUDE(1) or RESTRICT_TO(2) : exclude means this value should not be shown, restrict_to means only these values should be shown.
- restrictionValue : the value of the restriction
{
"id":"idOfTheRestriction",
"fromOwner":true,
"embedId":"configuratorId",
"restrictionTarget":"paramValue:width",
"restrictionType":2,
"restrictionValue":"120"
"active":true
}
# GET /restrictions
Generates: json
returns the restrictions of this component manageable by the current tenant (fromOwner if tenant is owner, matching tenantId or embedds where this tenant is the owner)
# POST /restrictions
Accepts: json
Generates: json
creates a new restriction with the given values
# PUT /restrictions/:id
Accepts: json
Generates: json
updates the given restriction with the given values
# DELETE /restrictions/:id
deletes the given restriction
# GET /:id/perspectiveImage
returns a temporary redirect (307) to the URL of the perspectiveImage for this component