API

Batch requests

Instead of making many asynchronous GET requests to the RamBase API, it is possible to combine these requests into one single synchronous GET request. Note that the API server run all requests in parallell, which might result in a different order than provided.

The syntax of the request URI is:

GET https://api.rambase.net/batch?resource1={resourceURL}&resource2={resourceURL}&....

Example

In this example both sales orders and customers are requested in one single batch request:

https://api.rambase.net/batch?resource1=/sales/orders&resource2=/sales/customers

The result is divided into one result section for each request:

1
<Resources>
2
            <Resource>
3
                <Uri>https://api.rambase.net/sales/orders</Uri>
4
                <BatchId>resource1</BatchId>
5
                <Response>
6
                    <SalesOrders>
7
                        ...
8
                    </SalesOrders>
9
                </Response>
10
            </Resource>
11
            <Resource>
12
                <Uri>https://api.rambase.net/sales/customers</Uri>
13
                <BatchId>resource2</BatchId>
14
                <Response>
15
                    <Customers>
16
                        ...
17
                    </Customers>
18
                </Response>
19
            </Resource>
20
</Resources>

Query parameters

In some cases the different requests might have query parameters that should only apply to the specific requests. In these cases the requests should be percent-encoded. Example:

Requests:
GET /sales/orders?$db=ABC-SE&$lang=swe
GET /sales/orders?$db=BCD-NO&$lang=nob

Combined batch request:
https://api.rambase.net/batch
?resource1=%2Fsales%2Forders%3F%24db%3DABC-SE%26%24lang%3Dswe
&resource2=%2Fsales%2Forders%3F%24db%3DBCD-NO%26%24lang%3Dnob

If not encoded, the query parameters $lang, $access_token,$context and $db will be applied to all requests. The output format of the batch request will always be the same for all of the requests.