Skip to content

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 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">
  <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