Une API est un service d'appel de procédure à distance (RPC, Remote Procedure Call) qui fournit des méthodes distantes accessibles depuis des clients externes. Chaque API backend se compose d'une classe de service RPC qui correspond à une sous-classe de la classe ProtoRPC remote.Service
, ainsi que d'une ou de plusieurs méthodes. Lorsque vous définissez une méthode, vous devez également définir des classes Message
pour les requêtes entrantes et les réponses renvoyées par la méthode.
Une classe Message
exécute une fonction de mappage permettant d'effectuer correctement, selon le cas, l'extraction des données entrantes et leur transmission à la méthode de service, ou la transmission des données à la réponse sortante.
Si une requête contient des arguments de chaîne de requête ou de chemin d'accès, vous devez effectuer le mappage à l'aide d'une classe ResourceContainer
au lieu d'une simple classe Message
.
Enfin, vous devez décorer la classe de service de l'API et les méthodes de la classe, puis définir les classes Message
pour les requêtes et les réponses.
Créer l'API
La procédure suivante montre comment décorer le code pour créer une API implémentée dans une classe unique. Si vous disposez d'une API multiclasse, consultez la page Créer une API implémentée avec plusieurs classes. Consultez la page Décorateurs pour obtenir des informations détaillées sur l'ensemble des décorateurs disponibles.
Pour créer une API :
Ajoutez les importations requises suivantes :
Définissez une sous-classe de
remote.Service
, puis décorez-la avec@endpoints.api
:Notez que les noms de l'API et de la classe de service n'ont pas besoin d'être identiques. Le numéro de version s'applique à la version de l'API. La valeur que vous saisissez est incorporée dans le chemin spécifié dans l'URL de l'API. Pour en savoir plus sur les versions, consultez la page Gérer les versions d'une API.
Déterminez les données que la méthode attend de la requête et celles qui seront renvoyées, puis créez une classe
Message
pour le corps de la requête et le corps de la réponse :Notez que si aucun argument n'apparaît dans le corps de la requête, comme c'est par exemple le cas pour les requêtes
GET
, vous pouvez omettre la classeMessage
pour la requête et vous contenter d'utiliser la valeurmessage_types.VoidMessage
.Si la requête contient des arguments de chaîne de requête ou de chemin d'accès, remplacez la classe
Message
par une classeResourceContainer
appropriée.Pour en savoir plus sur la création et l'utilisation de classes
Message
, consultez la documentation sur les classesMessage
de requête et de réponse Google Protocol RPC.Créez la méthode pour l'API, puis décorez-la avec
@endpoints.method
:Si la requête contient des données de chaîne de requête ou de chemin d'accès, remplacez le type de message de requête par une classe
ResourceContainer
appropriée.Ajoutez le code de diffusion de l'API, comme indiqué dans la page Créer un serveur Web.