Introduzione a OData
OData (Open Data Protocol) è uno standard aperto (approvato da OASIS e ISO) per interrogare e manipolare dati tramite API REST. Il suo grande vantaggio è che definisce convenzioni di URL per filtrare, ordinare, paginare, selezionare campi ed espandere relazioni — senza dover creare un endpoint su misura per ogni combinazione.
In pratica: invece di chiedere al backend "dammi le prenotazioni del cliente X create questo
mese, solo con il codice e la data", costruisci tu stesso quella query dall'URL con parametri
standard ($filter, $select, $orderby, ecc.).
- Documentazione di OData su Microsoft Learn — guida completa del protocollo e della libreria usata da Rently (ASP.NET OData).
- Sito dello standard OData (odata.org) — specifica, convenzioni di URL ed esempi.
- Convenzioni di URL di OData v4 — riferimento dettagliato di
$filter,$expand, ecc.
OData in Rently
Rently espone un'API OData di sola lettura su un insieme di entità di riferimento/consultazione, pensata per integrazioni che hanno bisogno di consultare e produrre report sui dati in modo flessibile (filtri, aggregazioni, esportazioni) senza molteplici chiamate.
- Base URL: tutte le risorse OData risiedono sotto
https://{tenant}.rently.com.ar/odata. - Autenticazione: la stessa del resto dell'API — token Bearer nell'header
Authorization(vedi Autenticazione). - Sola lettura: gli endpoint OData supportano
GET(collezione e per key). Le operazioni di scrittura (creare/aggiornare prenotazioni, pagamenti, ecc.) si effettuano tramite l'API REST.
Entity set disponibili
| Entity set | Risorsa | Descrizione |
|---|---|---|
| Bookings | /odata/Bookings | Prenotazioni (supporta $expand di Customer, Category, ecc.). |
| Customers | /odata/Customers | Clienti. |
| Agencies | /odata/Agencies | Agenzie. |
| Categories | /odata/Categories | Categorie di veicoli. |
| Models | /odata/Models | Modelli di veicoli. |
| Places | /odata/Places | Filiali / ubicazioni. |
| BookingBrands | /odata/BookingBrands | Marchi di booking. |
OData o REST?
- Usa OData quando hai bisogno di consultare/filtrare/produrre report su queste entità con flessibilità (per esempio, elencare le prenotazioni di un cliente in un intervallo di date, espandendo i suoi dati, prendendo solo alcuni campi).
- Usa l'API REST (i moduli Bookings, Customers, ecc.) per operare: creare e gestire prenotazioni, registrare pagamenti, check-in/out, incidenti, ecc.
Continua con Costruire query OData per vedere come filtrare, espandere e ordinare con esempi reali.