Un'API è un servizio di chiamata di procedura remota (RPC) che fornisce metodi
remoti accessibili ai client esterni. Ogni API di backend è composta da una classe di servizio RPC che sottoclasse la classe ProtoRPC remote.Service
e da uno o più metodi. Quando definisci un metodo, devi anche definire le classi Message
per le richieste in entrata in quel metodo e le risposte da esso restituite.
Una classe Message
esegue una funzione di mappatura in modo che i dati in entrata possano essere
estratti e forniti correttamente al metodo del servizio oppure forniti correttamente
alla risposta in uscita.
Se una richiesta ha argomenti del percorso o della stringa di query, per la mappatura utilizzerai una classe ResourceContainer
, anziché una semplice classe Message
.
Infine, devi decorare la classe di servizio API e i metodi della classe, nonché definire le classi Message
per le richieste e le risposte.
Creazione dell'API
La seguente procedura mostra come decorare il codice per creare un'API implementata in una singola classe. Se disponi di un'API multiclasse, consulta Creazione di un'API implementata con più classi. Consulta la pagina Decoratori per avere informazioni dettagliate su tutti i decoratori disponibili.
Per creare un'API:
Aggiungi le seguenti importazioni obbligatorie:
Definisci una sottoclasse di
remote.Service
e decorala con@endpoints.api
:Tieni presente che il nome dell'API e il nome della classe di servizio non devono essere necessariamente uguali. Il numero di versione si applica alla versione dell'API. Il valore inserito diventa parte del percorso dell'URL dell'API. Per maggiori informazioni sulle versioni, consulta Gestione del controllo delle versioni dell'API.
Determina quali dati il tuo metodo prevede dalla richiesta e quali vengono restituiti e crea una classe
Message
per il corpo della richiesta e il corpo della risposta:Tieni presente che se non vengono visualizzati argomenti nel corpo della richiesta, ad esempio in una richiesta
GET
, puoi omettere la classeMessage
per la richiesta e utilizzare semplicemente il valoremessage_types.VoidMessage
.Se la richiesta contiene argomenti relativi a un percorso o a una stringa di query, sostituisci la tua classe
Message
con unResourceContainer
appropriato.Per informazioni complete sulla creazione e sull'utilizzo delle classi
Message
, consulta la documentazione per la risposta RPC di protocollo Google e le classi di richiestaMessage
.Crea il metodo per la tua API e decoralo con
@endpoints.method
:Se la tua richiesta contiene dati di percorsi o stringa di query, sostituisci il tipo di messaggio di richiesta con un
ResourceContainer
appropriato.Aggiungi il codice per pubblicare l'API, come descritto in Creazione di un server web.