Batch Rest API
Batch operations allow to run multiple insert, update and delete at the same time over rules and admin rules. All the operations are executed in a single transaction: this means that either all of them are successful or all the operations are rolled back.
Security
The Geofence REST API is only accessible to users with the role ROLE_ADMIN.
Input/Output
Data Object Transfer
Both XML and JSON are supported for transfer of data objects. The default is XML. Alternatively, JSON may be used by setting the Content-Type and Accept HTTP headers to application/json in your requests.
A Batch data object transfer must declare a list of operations. Each operation needs to declare:
- The
servicename (rulesfor a Rule operation oradminrulesfor an AdminRule operation). - The
typeof the operation (insert,update,delete). - The
idof the entity over which the operation is being performed in case of anupdateordeletetypes. - The
RuleorAdminRuledata object transfer in case ofinsertorupdateoperation.
Encoding of a Batch in XML:
<Batch>
<operations service="rules" id="2" type="update">
<Rule id="2">
<access>ALLOW</access>
<layer>layer</layer>
<priority>5</priority>
<request>GETMAP</request>
<roleName>ROLE_AUTHENTICATED</roleName>
<service>WMS</service>
<workspace>ws</workspace>
</Rule>
</operations>
<operations service="rules" id="5" type="delete" />
<operations service="adminrules" type="insert">
<RuleAdmin>
<priority>2</priority>
<roleName>ROLE_USER</roleName>
<workspace>ws</workspace>
<access>ADMIN</access>
</RuleAdmin>
</operations>
</Batch>
Encoding of a Batch in JSON:
{
"Batch":{
"operations":[
{
"@service":"adminrules",
"@type":"update",
"@id":"3",
"Rule":{
"access":"ALLOW",
"layer":"layer",
"priority":5,
"request":"GETMAP",
"service":"WMS",
"roleName":"ROLE_AUTHENTICATED",
"workspace":"ws"
}
},
{
"@service":"rules",
"@type":"delete",
"@id":5
},
{
"@service":"adminrules",
"@type":"insert",
"AdminRule":{
"priority":2,
"roleName":"ROLE_USER",
"workspace":"ws",
"access":"ADMIN"
}
}
]
}
}
Requests
/rest/geofence/batch/exec
Issue a Batch operation executing all the declared operations.
| Method | Action | Response code | Response |
|---|---|---|---|
| POST | Execute a batch | 200 | OK |
| 400 | BadRequest: malformed request body, duplicate rule addition | ||
| 404 | NotFound: rule not found | ||
| 500 | InternalServerError: unexpected error |