get a skin.properties value for a lower-level node using REST API
- 12 years ago
You can't get the skin via our standard REST API, but like you said, you could get it via an Endpoint (if you don't have the Endpoints tab in studio enabled, contact support and they should be able to turn it on for you). Here is an example endpoint that might do what you need:
<#assign skinId = http.request.parameters.name.get("skin.id", "") /> <#if skinId?length gt 0> ${skin.set(skinId)} </#if> <#assign skinPropertyName = http.request.parameters.name.get("skin.property", "") /> <#assign singleProperty = (skinPropertyName?length gt 0) /> <response error="false"> <skin> <skin-properties> <#list skin.properties?keys as property> <#if !singleProperty || property == skinPropertyName> <#assign skinPropertyValue = skin.properties[property] />
<#-- replace commas with blank strings since they should only show up in skin properties that are all numbers --> <#assign skinPropertyValue = skinPropertyValue?string?replace(",","") /> <skin-property name="${property}">${skinPropertyValue}</skin-property> </#if> </#list> </skin-properties> </skin> </response>You can pass the ?skin.id=<skin id> (where <skin id> is a specfic skin id) to render a specific skin, otherwise it will render the skin that is set for the community. You can also pass ?skin.property=<skin property (example: skin.property=color_background) to return a single skin property.
- 12 years ago
Excellent, so I will use this syntax via REST API to get the skin id for the category needed:
http://[server]/restapi/vc/categories/id/[id]/settings/name/skin.id
Then pass that skin id into my endpoint to get the properties I need.
Thanks.