Features Templatring Rest API¶
Introduction¶
The Features Templating Rest API allows performing CRUD operation over Features Templates and Template Layer Rules.
Template Configuration¶
/rest/featurestemplates
Finds all templates in the global (features-templating) directory or creates a new template in the global directory.
-
- Method
- Consumes
- Produces
- Action
- Supported parameters
- Response
-
- GET
- application/xml, application/json.
- List of all the templates available in the
features-templatingdirectory. -
- List of rules in XML or JSON.
-
- POST
- application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip.
- text/plain.
- Add the template in the request body (text or zip file) as a new Template in the
features-templatingdirectory. - templateName (mandatory when posting a raw template, optional when posting a zip file)
-
- Created
Locationheader.
- Created
/rest/workspaces/<workspace name>/featurestemplates
Finds all templates in the workspace directory or creates a new template in the workspace directory.
-
- Method
- Consumes
- Produces
- Action
- Supported parameters
- Response
-
- GET
- application/xml, application/json.
- List of all the templates available in the
workspacedirectory -
- List of rules in XML or JSON.
-
- POST
- application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip.
- text/plain.
- Add the template in the request body (text or zip file) as a new Template in the
workspacedirectory. - templateName (mandatory when posting a raw template, optional when posting a zip file)
-
- Created
Locationheader.
- Created
/rest/workspaces/<workspace name>/featuretypes/<featureType name>/featurestemplates
Finds all templates in the featuretype directory or creates a new template in the featuretype directory.
-
- Method
- Consumes
- Produces
- Action
- Supported parameters
- Response
-
- GET
- application/json, application/xml.
- List of all the templates available in the
featuretypedirectory -
- List of rules in XML or JSON.
-
- POST
- application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip.
- text/plain.
- Add the template in the request body (text or zip file) as a new Template in the
Feature Typedirectory. - templateName (mandatory when posting a raw template, optional when posting a zip file)
-
- Created
Locationheader.
- Created
/rest/featurestemplates/<template name>
If the template with the specified name exists in the global (features-templating) directory, returns the template or replaces the template content with the one in the request body.
-
- Method
- Consumes
- Produces
- Action
- Response
-
- GET
- application/xml, application/json, application/xhtml+xml.
- the template with the specified name if present in the
features-templatingdirectory. -
- The template.
-
- PUT
- application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip.
- text/plain.
- replace the template, if found in the
features-templatingdirectory with the template in the request body (text or zip file). - 201.
-
- DELETE
- delete the template, if found in the
features-templatingdirectory. - 204.
-¶
/rest/workspaces/<workspace name>/featurestemplates/<template name>
If the template with the specified name exists in the workspace directory, returns the template or replaces the template content with the one in the request body.
-
- Method
- Consumes
- Produces
- Action
- Response
-
- GET
- application/xml, application/json, application/xhtml+xml.
- the template with the specified name if present in the
workspacedirectory. -
- The template.
-
- PUT
- application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip.
- text/plain.
- replace the existing template, if found in the
workspacedirectory with the template in the request body (text or zip file). - 201.
-
- DELETE
- delete the template, if found in the
workspacedirectory. - 204.
-¶
/rest/workspaces/<workspace name>/featuretypes/<featureType name> /featurestemplates/<template name>
If the template with the specified name exists in the featuretype directory, returns the template or replaces the template content with the one in the request body.
-
- Method
- Consumes
- Produces
- Action
- Response
-
- GET
- application/xml, application/json, application/xhtml+xml.
- the template with the specified name if present in the
featuretypedirectory. -
- The template.
-
- PUT
- application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip.
- text/plain.
- replace the existing template, if found in the
featuretypedirectory with the template in the request body (text or zip file). - 201.
-
- DELETE
- delete the template, if found in the
featuretypedirectory. - 204.
-¶
Template Rule Configuration¶
/rest/workspaces/<workspace name>/featuretypes/<featureType name>/templaterules
Finds all the configured template rules for the featuretype or creates a new one.
-
- Method
- Consumes
- Produces
- Action
- Response
-
- GET
- application/xml, application/json.
- List of all the template rules available for the
featuretype. -
- List of rules in XML or JSON.
-
- POST
- application/xml, text/xml, application/json, text/json.
- text/plain.
- Add the template rule in the request body.
-
- Created
Locationheader.
- Created
/rest/workspaces/<workspace name>/featuretypes/<featureType name> /templaterules/<rule identifier>
Finds, replaces, updates or deletes the template rule with the specified identifier.
-
- Method
- Consumes
- Produces
- Action
- Response
-
- GET
- application/xml, application/json.
- The rule with the specified
rule identifier. -
- List of rules in XML or JSON.
-
- PUT
- application/xml, text/xml, application/json, text/json.
- text/plain.
- Replace the rule with the specified id with the one provided in the request body.
- 201.
-
- PATCH
- application/xml, text/xml, application/json, text/json.
- text/plain.
- Allows partial updates of the rule with the specified id using the fields specified in the rule provided in the request body. It uses a JSON merge patch like strategy
- 201.
-
- DELETE
- Delete the rule with the specified id.
- 204.
-¶
Data Object Transfer¶
Both XML and JSON are supported for transfer of data objects.
Encoding of a template rule in XML:
<Rule>
<ruleId>..</ruleId>
<priority>..</priority>
<templateName>..</templateName>
<outputFormat>..</outputFormat>
<cqlFilter>..</cqlFilter>
<profileFilter>...</profileFilter>
</Rule>
Encoding of a rule in JSON:
{"Rule": {"ruleId":..,"priority":..,"templateName":"..","outputFormat":"..","cqlFilter":"..","profileFilter":".."}}
When applying partial updates missing attributes/element in incoming object are left unchanged. Properties can be set to null. E.g. the following example will allow to set the profileFilter to null:
XML:
<Rule>
<profileFilter xsi:nil="true"/>
</Rule>
JSON:
{"Rule":{"profileFilter":null}}