Passa al contenuto principale

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}.

Opzioni abilitate

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:

OperatoreSignificatoEsempio
eq / neuguale / diversoCurrency eq 'USD'
gt ge lt lemaggiore / maggiore-uguale / minore / minore-ugualeFromDate ge 2026-01-01T00:00:00Z
and or notcombinazione logicaIsQuotation eq false and Balance gt 0
contains(...)sottostringacontains(Code,'RNT')
startswith(...)inizia constartswith(Lastname,'Do')
Tipi di valore

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'
Massimo per pagina

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'
Codifica l'URL

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 il GlobalId del 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.