En esta página se describe cómo decorar tu código para crear una API implementada en varias clases. Si implementaste tu API con solo una clase, consulta Crea la API. Consulta Decoradores si deseas obtener más información sobre todos los decoradores disponibles.
Reemplaza api_collection
por el nombre que quieras, siempre y cuando uses el mismo nombre para cada clase de la API. Debes preceder cada clase de la API con el decorador, como se muestra en el fragmento anterior.
Acerca del argumento resource_name
El argumento resource_name
opcional para api_class
es el nombre de la clase que necesitas exponer en la API. Este es el nombre que aparece en el Explorador de API y que se antepone a todo método expuesto en la clase.
Acerca del argumento path
El argumento path
opcional para 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 un path
para la clase Shelves
, por lo que sus métodos son accesibles en /_ah/api/library/v1
, la raíz. Por ejemplo, se puede acceder al método list
desde la ruta de acceso /_ah/api/library/v1/list
.
Si especificas un argumento path
para una clase, la ruta de acceso especificada se agrega a la raíz. En el ejemplo anterior, el argumento path
books
se especifica para la clase Books
, por lo que sus métodos son accesibles en /_ah/api/library/v1/books
. Por ejemplo, se puede acceder al método best_sellers_list
desde la ruta de acceso /_ah/api/library/v1/books/best_sellers_list
.
El argumento path
es opcional para los métodos. Si no especificas un path
, se usa el nombre del método. Toda ruta especificada para los métodos se agrega a la ruta de la 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 si especificas un método de argumento path
que comience con /
. Por ejemplo, supongamos que el método get_bookmark
en la clase Books
tiene la ruta siguiente:
@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
.
Entrega una API de varias clases
En el código endpoints.api_server con el que se crea el servidor de la API, debes proporcionar el nombre que asignaste a tu colección api_class
. Por ejemplo, si el nombre de la colección es api_collection
, debes crear el servidor de la manera siguiente: