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 |
|
||
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 |
templateName (mandatory when posting a raw template, optional when posting a zip file) |
|
/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 |
|
||
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 |
templateName (mandatory when posting a raw template, optional when posting a zip file) |
|
/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 |
|
||
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 |
templateName (mandatory when posting a raw template, optional when posting a zip file) |
|
/rest/featurestemplates/<template name>
If the template with the specified name exisits 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 |
|
|
PUT |
application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip. |
text/plain. |
replace the template, if found in the |
|
DELETE |
delete the template, if found in the |
/rest/workspaces/<workspace name>/featurestemplates/<template name>
If the template with the specified name exisits 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 |
|
|
PUT |
application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip. |
text/plain. |
replace the exisiting template, if found in the |
|
DELETE |
delete the template, if found in the |
/rest/workspaces/<workspace name>/featuretypes/<featureType name>
/featurestemplates/<template name>
If the template with the specified name exisits 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 |
|
|
PUT |
application/xml, text/xml, application/json, text/json, application/xhtml+xml, application/zip. |
text/plain. |
replace the exisiting template, if found in the |
|
DELETE |
delete the template, if found in the |
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 |
|
|
POST |
application/xml, text/xml, application/json, text/json. |
text/plain. |
Add the template rule in the request body. |
|
/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 |
|
|
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. |
|
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 |
|
DELETE |
Delete the rule with the specified id. |
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}}