Un'API è un servizio di chiamata di procedura remota (RPC) che fornisce metodi remoti accessibili ai client esterni. Ogni API di backend è costituita da una classe di servizio RPC che è una sottoclasse della 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 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 o alla risposta in uscita.
Se una richiesta ha argomenti di percorso o stringa di query, utilizzi una classe ResourceContainer per la mappatura, anziché una semplice classe Message.
Infine, devi decorare la classe del servizio API e i metodi della classe, nonché 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 con più classi, consulta Creazione di un'API implementata con più classi. Per informazioni dettagliate su tutti i decoratori disponibili, consulta Decoratori.
Per creare un'API:
Aggiungi le seguenti importazioni obbligatorie:
Definisci una sottoclasse di
remote.Servicee decorala con@endpoints.api:Tieni presente che il nome dell'API e il nome della classe di servizio non devono necessariamente essere uguali. Il numero di versione si riferisce alla versione dell'API. Il valore inserito diventa parte del percorso nell'URL dell'API. Per ulteriori informazioni sulle versioni, consulta Gestione del controllo delle versioni dell'API.
Determina quali dati il tuo metodo si aspetta dalla richiesta e quali dati vengono restituiti, quindi crea una classe
Messageper il corpo della richiesta e il corpo della risposta:Tieni presente che se nel corpo della richiesta non vengono visualizzati argomenti, ad esempio in una richiesta
GET, puoi omettere la classeMessageper la richiesta e utilizzare semplicemente il valoremessage_types.VoidMessage.Se la richiesta contiene argomenti di stringa di query o percorso, sostituisci la classe
Messagecon unResourceContainerappropriato.Per informazioni complete sulla creazione e sull'utilizzo delle classi
Message, consulta la documentazione relativa alle classi di richiesta e rispostaMessagedi Google Protocol RPC.Crea il metodo per l'API e decoralo con
@endpoints.method:Se la richiesta contiene dati di percorso o stringa di query, sostituisci il tipo di messaggio di richiesta con un
ResourceContainerappropriato.Aggiungi il codice per pubblicare l'API, come descritto in Creazione di un server web.