Costruire query OData
Questa guida mostra come costruire query sugli endpoint OData di Rently usando le
opzioni standard: filtrare, selezionare campi, espandere relazioni, ordinare, paginare e
contare. Tutti gli esempi vanno su GET https://{tenant}.rently.com.ar/odata/... con l'header
Authorization: Bearer {token}.
In Rently sono abilitate $filter, $select, $expand, $orderby, $top, $skip e
$count. Le collezioni vengono paginate lato server con un massimo di 100 record per
pagina.
Richiesta base
curl 'https://{tenant}.rently.com.ar/odata/Bookings' \
-H 'Authorization: Bearer YOUR_TOKEN'
La risposta arriva nel wrapper standard di OData: i record vanno in value.
{
"@odata.context": "https://{tenant}.rently.com.ar/odata/$metadata#Bookings",
"value": [
{ "Id": 1, "Code": "RNT-0001", "Currency": "USD", "IsQuotation": false }
]
}
$filter — filtrare
Filtra la collezione in base a condizioni sui campi dell'entità.
# Prenotazioni confermate (non preventivi) in USD
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$filter=IsQuotation eq false and Currency eq '\''USD'\''' \
-H 'Authorization: Bearer YOUR_TOKEN'
Operatori più usati:
| Operatore | Significato | Esempio |
|---|---|---|
eq / ne | uguale / diverso | Currency eq 'USD' |
gt ge lt le | maggiore / maggiore-uguale / minore / minore-uguale | FromDate ge 2026-01-01T00:00:00Z |
and or not | combinazione logica | IsQuotation eq false and Balance gt 0 |
contains(...) | sottostringa | contains(Code,'RNT') |
startswith(...) | inizia con | startswith(Lastname,'Do') |
Le stringhe vanno tra apici singoli ('USD'), le date in formato ISO 8601
(2026-01-01T00:00:00Z), e i numeri/booleani senza apici (Balance gt 0,
IsQuotation eq false).
$select — scegliere i campi
Prende solo i campi che ti servono (risposte più leggere).
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$select=Id,Code,FromDate,ToDate,Currency' \
-H 'Authorization: Bearer YOUR_TOKEN'
$expand — espandere relazioni
Include entità correlate nella stessa risposta. In Bookings puoi espandere, tra le
altre, Customer, Category, DeliveryPlace, ReturnPlace e Agency.
# Prenotazioni con i dati del cliente e la categoria incorporati
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$expand=Customer,Category' \
-H 'Authorization: Bearer YOUR_TOKEN'
Puoi combinare $expand con $select all'interno della relazione:
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$expand=Customer($select=Firstname,Lastname,EmailAddress)' \
-H 'Authorization: Bearer YOUR_TOKEN'
$orderby — ordinare
# Più recenti prima
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$orderby=FromDate desc' \
-H 'Authorization: Bearer YOUR_TOKEN'
Accetta asc (default) o desc, e più campi separati da virgola.
$top e $skip — paginare
# Seconda pagina di 20 record
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$top=20&$skip=20' \
-H 'Authorization: Bearer YOUR_TOKEN'
Il server limita ogni pagina a 100 record. Per scorrere grandi volumi, itera con
$skip aumentando di $top.
$count — totale di record
Aggiungi $count=true per ricevere il totale in @odata.count, utile per paginare in una UI.
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$count=true&$top=20' \
-H 'Authorization: Bearer YOUR_TOKEN'
{
"@odata.context": "https://{tenant}.rently.com.ar/odata/$metadata#Bookings",
"@odata.count": 1532,
"value": [ /* ...20 prenotazioni... */ ]
}
Tutto insieme
Un esempio che combina varie opzioni: prenotazioni confermate, a partire da una data, con il cliente espanso, solo alcuni campi, ordinate e paginate.
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$filter=IsQuotation eq false and FromDate ge 2026-01-01T00:00:00Z&$expand=Customer($select=Firstname,Lastname)&$select=Id,Code,FromDate,Currency&$orderby=FromDate desc&$top=20&$count=true' \
-H 'Authorization: Bearer YOUR_TOKEN'
Quando usi questi URL da codice, ricordati di URL-encodare i valori (gli spazi diventano
%20, ecc.). In curl basta racchiudere l'URL tra apici come negli esempi.
Filtri propri di alcune risorse
Oltre alle opzioni OData, alcuni endpoint accettano parametri propri:
GET /odata/Bookings?customerId={id}— prenotazioni di un cliente (accetta l'Id interno o ilGlobalIddel cliente).GET /odata/Agencies?q={texto}— ricerca rapida di agenzie per nome o codice IATA.
Il dettaglio di ogni risorsa, con i suoi campi e parametri, è nella sezione OData del reference.