Aller au contenu principal

Construire des queries OData

Ce guide montre comment construire des requêtes contre les endpoints OData de Rently en utilisant les options standard : filtrer, sélectionner des champs, étendre des relations, trier, paginer et compter. Tous les exemples portent sur GET https://{tenant}.rently.com.ar/odata/... avec le header Authorization: Bearer {token}.

Options activées

Chez Rently, $filter, $select, $expand, $orderby, $top, $skip et $count sont activées. Les collections sont paginées côté serveur avec un maximum de 100 enregistrements par page.

Requête de base

curl 'https://{tenant}.rently.com.ar/odata/Bookings' \
-H 'Authorization: Bearer YOUR_TOKEN'

La réponse arrive dans l'enveloppe standard d'OData : les enregistrements se trouvent dans value.

{
"@odata.context": "https://{tenant}.rently.com.ar/odata/$metadata#Bookings",
"value": [
{ "Id": 1, "Code": "RNT-0001", "Currency": "USD", "IsQuotation": false }
]
}

$filter — filtrer

Filtre la collection selon des conditions portant sur les champs de l'entité.

# Réservations confirmées (non devis) en USD
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$filter=IsQuotation eq false and Currency eq '\''USD'\''' \
-H 'Authorization: Bearer YOUR_TOKEN'

Opérateurs les plus utilisés :

OpérateurSignificationExemple
eq / neégal / différentCurrency eq 'USD'
gt ge lt lesupérieur / supérieur-égal / inférieur / inférieur-égalFromDate ge 2026-01-01T00:00:00Z
and or notcombinaison logiqueIsQuotation eq false and Balance gt 0
contains(...)sous-chaînecontains(Code,'RNT')
startswith(...)commence parstartswith(Lastname,'Do')
Types de valeur

Les strings sont entre guillemets simples ('USD'), les dates au format ISO 8601 (2026-01-01T00:00:00Z), et les nombres/booléens sans guillemets (Balance gt 0, IsQuotation eq false).

$select — choisir les champs

Ne récupère que les champs dont vous avez besoin (réponses plus légères).

curl 'https://{tenant}.rently.com.ar/odata/Bookings?$select=Id,Code,FromDate,ToDate,Currency' \
-H 'Authorization: Bearer YOUR_TOKEN'

$expand — étendre les relations

Inclut les entités liées dans la même réponse. Dans Bookings, vous pouvez étendre, entre autres, Customer, Category, DeliveryPlace, ReturnPlace et Agency.

# Réservations avec les données du client et la catégorie intégrées
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$expand=Customer,Category' \
-H 'Authorization: Bearer YOUR_TOKEN'

Vous pouvez combiner $expand avec $select à l'intérieur de la relation :

curl 'https://{tenant}.rently.com.ar/odata/Bookings?$expand=Customer($select=Firstname,Lastname,EmailAddress)' \
-H 'Authorization: Bearer YOUR_TOKEN'

$orderby — trier

# Les plus récentes en premier
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$orderby=FromDate desc' \
-H 'Authorization: Bearer YOUR_TOKEN'

Accepte asc (default) ou desc, et plusieurs champs séparés par des virgules.

$top et $skip — paginer

# Deuxième page de 20 enregistrements
curl 'https://{tenant}.rently.com.ar/odata/Bookings?$top=20&$skip=20' \
-H 'Authorization: Bearer YOUR_TOKEN'
Maximum par page

Le serveur limite chaque page à 100 enregistrements. Pour parcourir de grands volumes, itérez avec $skip en augmentant par pas de $top.

$count — total d'enregistrements

Ajoutez $count=true pour recevoir le total dans @odata.count, utile pour paginer dans une 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 réservations... */ ]
}

Tout ensemble

Un exemple combinant plusieurs options : réservations confirmées, à partir d'une date, avec le client étendu, seulement quelques champs, triées et paginées.

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

Lorsque vous utilisez ces URLs depuis du code, pensez à URL-encoder les valeurs (les espaces deviennent %20, etc.). Avec curl, il suffit d'entourer l'URL de guillemets comme dans les exemples.

Filtres propres à certaines ressources

En plus des options OData, certains endpoints acceptent leurs propres paramètres :

  • GET /odata/Bookings?customerId={id} — réservations d'un client (accepte l'Id interne ou le GlobalId du client).
  • GET /odata/Agencies?q={texte} — recherche rapide d'agences par nom ou code IATA.

Le détail de chaque ressource, avec ses champs et ses paramètres, se trouve dans la section OData de la reference.