Cette page explique comment décorer votre code pour créer une API implémentée dans plusieurs classes. Si vous avez mis en œuvre l'API à l'aide d'une seule classe, consultez la page Créer l'API. Consultez la page Décorateurs pour obtenir des informations détaillées sur l'ensemble des décorateurs disponibles.
Remplacez api_collection
par le nom de votre choix, tant que vous utilisez le même nom pour chaque classe de l'API. Vous devez faire précéder chaque classe de l'API par le décorateur, comme indiqué dans l'extrait de code ci-dessus.
À propos de l'argument resource_name
L'argument facultatif resource_name
pour api_class
définit le nom de la classe que vous souhaitez exposer dans l'API. Il correspond au nom qui apparaît dans l'explorateur d'API, ajouté au début de toute méthode exposée dans la classe.
À propos de l'argument path
L'argument facultatif path
pour api_class
spécifie l'emplacement relatif auquel les méthodes de classe apparaissent dans l'URL. Dans l'exemple précédent, aucun argument path
n'est spécifié pour la classe Shelves
, dont les méthodes sont donc accessibles sous la racine (/_ah/api/library/v1
). Par exemple, la méthode list
est accessible à partir du chemin /_ah/api/library/v1/list
.
Si vous spécifiez un argument path
pour une classe, le chemin spécifié est ajouté à la racine. Dans l'exemple précédent, l'argument path
est spécifié avec la valeur books
pour la classe Books
, dont les méthodes sont donc accessibles sous /_ah/api/library/v1/books
. Par exemple, la méthode best_sellers_list
est accessible à partir du chemin /_ah/api/library/v1/books/best_sellers_list
.
L'argument path
est facultatif pour les méthodes. Si vous ne spécifiez pas l'argument path
, c'est le nom de la méthode qui est utilisé. Tous les chemins spécifiés pour les méthodes sont ajoutés au chemin de classe. Dans l'exemple précédent, la valeur bookmark
est spécifiée comme argument path
pour la méthode get_bookmark
. La méthode get_bookmark
est donc accessible à partir du chemin /_ah/api/library/v1/books/bookmark
.
Vous pouvez ignorer l'argument path
de la classe en spécifiant un argument de méthode path
commençant par /
. Par exemple, supposons que la méthode get_bookmark
de la classe Books
possède le chemin d'accès suivant :
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
La barre oblique initiale change le chemin de la méthode de get_bookmark
en /_ah/api/library/v1/bookmark
.
Publier une API à classes multiples
Dans le code endpoints.api_server servant à créer le serveur d'API, spécifiez le nom que vous avez attribué à la collection api_class
. Par exemple, si le nom de la collection est api_collection
, créez le serveur comme suit :