Skip to content

REST API: Batch

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 service name (rules for a Rule operation or adminrules for an AdminRule operation).
  • The type of the operation (insert, update, delete).
  • The id of the entity over which the operation is being performed in case of an update or delete types.
  • The Rule or AdminRule data object transfer in case of insert or update operation.

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">
  <AdminRule>
     <priority>2</priority>
     <roleName>ROLE_USER</roleName>
     <workspace>ws</workspace>
     <access>ADMIN</access>
  </AdminRule>
</operations>
</Batch>

Encoding of a Batch in JSON:

{
"Batch":{
  "operations":[
     {
        "@service":"rules",
        "@type":"update",
        "@id":"2",
        "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