Homsai Backend v2
Questa documentazione descrive le API REST del backend Homsai v2, una piattaforma per il monitoraggio e l’ottimizzazione di impianti energetici residenziali e industriali.
Il backend è sviluppato in Spring Boot 3.1.1 (Java 17) con architettura Domain-Driven Design e fornisce gestione di impianti (plants), dispositivi (devices), sensori (sensors), tipi di dispositivo/sensore, firme di carico, vendor e metriche energetiche avanzate (consumi, produzioni, previsioni e salute impianto).
Introduzione
Homsai espone un insieme di API REST pensate per essere integrate in applicazioni di terze parti (portali, app mobile, sistemi di supervisione) per leggere e gestire dati energetici in tempo reale e storici. L’accesso alle API è protetto tramite JSON Web Token (JWT) e i permessi sono granulari per risorsa (impianti, dispositivi, sensori, metriche, previsioni), in linea con le best practice di sicurezza per API web.
L’istanza tipica prevede almeno due ambienti:
- ambiente di test/sandbox per sviluppo e validazione integrazioni;
- ambiente di produzione per i dati reali degli impianti.
Getting Started
Questa sezione guida passo‑passo nella prima integrazione con le API di Homsai: ottenimento del token JWT e prima chiamata verso il backend.
Requisiti
Per iniziare servono:
- Un account Homsai abilitato all’uso delle API (credenziali utente).
- L’URL base delle API (esempio:
https://v2.api.homsai.appper produzione, più un eventuale endpoint sandbox). - Uno strumento per effettuare richieste HTTP: cURL da terminale, Postman oppure un client HTTP nel linguaggio scelto (Python, JS, Java, ecc.).
Ottenere il token JWT
L’autenticazione avviene tramite lo scambio credenziali → token JWT:
- Effettua una richiesta
POST /auth/logininviando email e password nel body JSON. - In risposta il backend restituisce almeno:
accessToken: token a breve durata, da usare nell’header Authorization;refreshToken: token a durata maggiore, da usare per ottenere un nuovo access token quando scade.
Qualsiasi chiamata protetta deve includere l’header:
Authorization: Bearer <accessToken>
Quando l’accessToken scade, puoi usare GET /auth/token passando il refreshToken secondo la modalità prevista dall’implementazione (header o altro canale documentato) per ottenere un nuovo access token senza rifare il login.
Prima chiamata “Hello World”
Una volta ottenuto un accessToken valido, puoi verificare rapidamente che l’integrazione funzioni eseguendo una chiamata molto semplice.
1. Login e ottenimento del token
Esempio con cURL:
curl -X POST [https://api.homsai.app/auth/login](https://api.homsai.app/auth/login) -H "Content-Type: application/json" -d '{
"email": "utente@example.com",
"password": "PasswordSicura123"
}'
Dalla risposta JSON copia il valore del campo accessToken.
2. Chiamata protetta “Hello World”
Usa un endpoint semplice, ad esempio:
GET /versionper leggere la versione del backend, oppureGET /protectedcome endpoint di test che richiede solo la presenza di un JWT valido.
Esempio cURL con GET /version:
curl -X GET [https://api.homsai.app/version](https://api.homsai.app/version) -H "Authorization: Bearer <accessToken>"
Se la configurazione è corretta, riceverai:
- uno status HTTP 200 OK;
- un payload JSON con le informazioni della versione (
/version) o un payload minimale di test (/protected).
Questa prima richiesta dimostra che:
- le credenziali sono corrette;
- il flusso login → token → chiamata autenticata funziona;
- non ci sono problemi di rete, CORS o certificati verso l’endpoint API.