.. _rest_api_geofence_server_batch: 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:: ALLOW layer 5 GETMAP ROLE_AUTHENTICATED WMS ws 2 ROLE_USER ws ADMIN 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 | +------------+-----------------+--------------+-------------------------------------------------------------+