# MaterialController
# Overview
# Description
This is a material.
Path /v2/materials
Handles all request regarding materials: creating, updating, deleting.
query-params for every GET-call:
- embedTextures: true/false if true the materials contain textureObjects additionally to the textures array (with the ids) so that the client doesn't have to request them seperatly
# Material JSON object
An example for a material json object.
{
"externalIdentifier": "materialExtId1",
"version": 0,
"id": "catalog1:materialExtId1",
"color": "128,128,128",
"shading": {
"basecolor": {
"r": 0.9019607843137255,
"g": 0.5823529411764706,
"b": 0.6470588235294118
},
"specularity": 0.9999999999999999,
"metallic": 0,
"roughness": 0.6,
"alpha": 1.0
},
"properties": {
"property1": "value1",
"property2": "value2",
"property3": "value3",
"property4": "value4"
},
"thumbnail": "thumb",
"asset": "asset/web/3/assetfile",
"textures": [
1
],
"tags": [
"tag1",
"tag2"
],
"label": "mat1En",
"language": "en",
"catalog": "catalog1",
"group": "catalog1:group1",
"links": {
"textures": "/materials/catalog1:materialExtId1/textures"
},
"hidden": false,
"active": true,
"activeFrom": "2020-01-01T00:00:00.000Z",
"activeTill": "2022-10-01T00:00:00.000Z",
"sort": 13,
"updated": "1970-01-01T00:00:00.000Z",
"created": "1970-01-01T00:00:00.000Z"
}
# fields
- externalIdentfier
- version
- id
- color
- shading
- properties
- thumbnail
- asset
- textures
- tags
- label
- language
- catalog
- group
- links
- hidden
- active
- activeFrom
- activeTill
- updated
- created
- visibilityStatus : possible values (0, 1, 2)
- 0 : "shown everywhere "
- 1 : "shown only in Rubens Admin"
- 2 : "hidden everywhere" - item is archived
# GET /v2/materials
List of all materials matching the filter and visible to the Client
Generates: application/json
Response success (200 OK):
{
"materials": [
<materialJson>,
<materialJson>
...
]
}
Parameters
Name | Type | Comment |
---|---|---|
catalogs[] | List of strings | filters the result to the given catalog ids |
embedTextures | Boolean | If true the textures are included as embedded json objects |
# POST /v2/materials
Creates a new material in the catalog provided in the body.
Accepts: application/json Generates: application/json
Body:
{
"material": <materialJson>
}
Response success (201 CREATED):
{
"material": <materialJson>
}
# PUT /v2/materials/
Updates the metainformation of a material. Thumbnail needs to be uploaded explicitly (can’t be changed with this call).
Accepts: application/json Generates: application/json
Body:
{
"material": <materialJson>
}
Response success (200 OK):
{
"material": <materialJson>
}
# POST /v2/materials//thumbnail
Uploads the thumbnail for the material. Override the last uploaded thumbnail if any.
Accepts: multipart-formdata
Generates: application/json (the adapted material)
Body: thumbnail binary file (filename is only relevant for the ending)
Response success (200 OK):
{
"material": <materialJson>
}
Updated materialJSON with updated thumbnailUrl.
For uploading a thumbnail to a given material. The image will be uploaded and linked in the material. If the image is bigger than 256x256, it will be resized to fit in to the square 256x256.