Passa al contenuto principale
Versione: Prossima

Le API di Openbeehive

Openbeehive è API-first e aperto. Non c'è alcun backend nascosto: tutto ciò che l'app fa — creare apiari, registrare ispezioni, sincronizzare dispositivi, leggere statistiche — passa attraverso un'unica API pubblica Connect-RPC. Lo stesso contratto che alimenta l'app è disponibile anche per te.

Questa apertura è una scelta deliberata. I tuoi dati sono tuoi, quindi dovresti poterli leggere, automatizzare via script, alimentarli dai tuoi sensori e spostarli altrove senza chiedere il permesso a nessuno.

Un contratto, due protocolli

L'API è definita una sola volta come contratto Protocol Buffers e servita con Connect-RPC. Ciò significa che ogni endpoint è raggiungibile in due modi, dallo stesso URL:

StileIdeale perPagina
HTTP + JSON (in stile REST)curl, script, webhook, microcontrollori, integrazioni rapideREST / HTTP + JSON
gRPC / gRPC-Web / Connectclient tipizzati, streaming, sincronizzazione ad alto volumegRPC

Non scegli un protocollo sul server — lo scegli per ogni richiesta, tramite gli header che invii. Scegli quello più comodo per il tuo strumento.

URL di base

L'API è servita dallo stesso processo che serve l'app:

  • Servizio in hosting: https://app.openbeehive.org
  • Self-hosted: la tua origine, ad esempio https://bees.example.com (vedi Self-hosting)

Ogni metodo si trova su un percorso prevedibile:

POST <base-url>/openbeehive.v1.<Service>/<Method>

Ad esempio: https://app.openbeehive.org/openbeehive.v1.ApiaryService/ListApiaries.

Servizi

Il contratto è suddiviso in servizi. Ognuno corrisponde a una parte del dominio che già conosci dall'app:

ServizioCosa copre
ApiaryServiceCreare, leggere, aggiornare, eliminare ed elencare gli apiari
HiveServiceArnie, incluso lo spostamento di un'arnia tra apiari
QueenServiceRegine e la cronologia del loro regno
InspectionServiceIspezioni / visite (incl. temperatura e umidità), URL per il caricamento delle foto
TreatmentServiceTrattamenti / il Bestandsbuch (prodotto, lotto, dose, tempo di sospensione)
TaskServiceAttività e promemoria
EventServiceIl feed di eventi / cronologia in sola aggiunta
StatsServiceTotali della dashboard e statistiche sul miele
SyncServicePull, Push e un Subscribe in streaming — il motore di sincronizzazione offline-first

:::note Stato dell'implementazione (v0.1.0) ApiaryService e SyncService sono oggi completamente integrati lato server. Gli altri servizi sono definiti nel contratto e seguono la stessa struttura; sono in fase di completamento. Consulta il contratto per la fonte di verità attuale e le note di rilascio per ciò che è già attivo. :::

Autenticazione

  • Self-hosted, utente singolo: quando non è configurato alcun login, l'API è aperta all'istanza (sei l'unico utente). Questa è la configurazione più semplice per i server domestici e gli script. Vedi Autenticazione.
  • Con il login abilitato / il servizio in hosting: le richieste trasportano una sessione stabilita tramite OIDC o una passkey. Inviala come bearer token: Authorization: Bearer <token>. I token API programmatici per i client automatizzati (script, sensori) sono nella roadmap — fino ad allora, il self-hosting in modalità utente singolo è il percorso senza attriti per l'automazione.

Come l'app stessa la utilizza

L'app è offline-first: scrive prima su un database locale e il motore di sincronizzazione riconcilia con il server tramite SyncService.Push / Pull. I servizi CRUD (ApiaryService, InspectionService, …) sono i punti di ingresso autoritativi lato server utilizzati per integrazioni dirette, esportazione e automazione. Entrambe le viste poggiano sugli stessi dati — vedi Offline e sincronizzazione e l'architettura per sviluppatori.

Cosa puoi costruire

  • Importare i tuoi dati in un foglio di calcolo, un notebook o una dashboard BI.
  • Automatizzare via script modifiche di massa o migrazioni da un altro strumento di apicoltura.
  • Alimentare le letture dai tracker automatizzati — bilance per arnie, sensori di temperatura e umidità — direttamente nelle ispezioni. Vedi Tracker automatizzati.
  • Costruire il tuo client, bot o widget mobile su un contratto stabile e tipizzato.

Pronto per i dettagli? Inizia con REST / HTTP + JSON.