Un'API è un servizio di chiamata di procedura remota (RPC) che fornisce metodi remoti accessibili a 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 che quest'ultimo restituisce.
Una classe Message
esegue una funzione di mappatura in modo che i dati in entrata possano essere estratti e forniti correttamente al metodo di servizio o forniti correttamente alla risposta in uscita.
Se una richiesta contiene argomenti relativi a percorso o stringa di query, utilizzi una classe ResourceContainer
per la mappatura, anziché una semplice classe Message
.
Infine, dovrai decorare la classe di servizio dell'API e i metodi della classe e definire le classi Message
per le richieste e le risposte.
Creazione dell'API
La procedura seguente mostra come decorare il codice per creare un'API implementata in una singola classe. Se hai un'API multiclasse, consulta Creazione di un'API implementata con più classi. Vedi Decoratori per 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 uguali. Il numero di versione si applica alla versione dell'API. Il valore inserito diventa parte del percorso dell'URL all'API. Per saperne di più sulle versioni, consulta Gestire il controllo delle versioni delle API.
Determina quali dati il metodo si aspetta dalla richiesta e quali dati 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
della richiesta e utilizzare semplicemente il valoremessage_types.VoidMessage
.Se la richiesta contiene argomenti relativi al percorso o alla stringa di query, sostituisci la classe
Message
con un valoreResourceContainer
appropriato.Per informazioni complete sulla creazione e sull'utilizzo delle classi
Message
, consulta la documentazione relativa alla risposta di Google Protocol RPC e richiedi le classiMessage
.Crea il metodo per l'API e decoralo con
@endpoints.method
:Se la richiesta contiene dati relativi al percorso o alla stringa di query, sostituisci il tipo di messaggio della richiesta con un valore
ResourceContainer
appropriato.Aggiungi il codice per pubblicare l'API, come descritto nella sezione Creare un server web.