En esta página se describe cómo decorar el código para crear una API implementada en varias clases. Si has implementado tu API usando solo una clase, consulta Crear la API. Consulta la sección Decoradores para obtener información detallada sobre todos los decoradores disponibles.
Sustituye api_collection
por el nombre que quieras, siempre que uses el mismo nombre para cada clase de la API. Debes preceder cada clase de la API con el decorador, tal como se muestra en el fragmento anterior.
Acerca del argumento resource_name
El argumento opcional resource_name
de api_class
es el nombre de la clase que quieres exponer en la API. Este es el nombre que aparece en el Explorador de APIs, antepuesto a cualquier método expuesto en la clase.
Acerca del argumento path
El argumento opcional path
de api_class
especifica la ubicación relativa en la que aparecen los métodos de clase en la URL. En el ejemplo anterior, no se especifica ningún path
para la clase Shelves
, por lo que se puede acceder a sus métodos en la raíz, /_ah/api/library/v1
. Por ejemplo, se puede acceder al método list
desde la ruta /_ah/api/library/v1/list
.
Si especificas un argumento path
para una clase, la ruta especificada se añade a la raíz. En el ejemplo anterior, se especifica el argumento path
books
para la clase Books
, por lo que se puede acceder a sus métodos mediante /_ah/api/library/v1/books
. Por ejemplo, se puede acceder al método best_sellers_list
desde la ruta /_ah/api/library/v1/books/best_sellers_list
.
El argumento path
es opcional para los métodos. Si no especificas ningún path
, se usará el nombre del método. Las rutas especificadas para los métodos se añaden a la ruta de clase. En el ejemplo anterior, bookmark
se especifica como path
para el método get_bookmark
. Se puede acceder al método get_bookmark
desde la ruta /_ah/api/library/v1/books/bookmark
.
Puedes anular el argumento path
de la clase especificando un argumento path
de método que empiece por /
. Por ejemplo, supongamos que el método get_bookmark
de la clase Books
tiene la siguiente ruta:
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
La barra inicial cambia la ruta del método get_bookmark
a /_ah/api/library/v1/bookmark
.
Servir una API de varias clases
En el código endpoints.api_server
que crea el servidor de la API, debes proporcionar el nombre que has asignado a tu colección api_class
. Por ejemplo, si el nombre de la colección es api_collection
, crearías el servidor de la siguiente manera: