Una API es un servicio de llamada a procedimiento remoto (RPC) que proporciona métodos remotos a los que pueden acceder clientes externos. Cada API de backend consta de una clase de servicio RPC que hereda de la clase ProtoRPC remote.Service
y de uno o varios métodos. Cuando defines un método, también debes definir clases Message
para las solicitudes que llegan a ese método y las respuestas que devuelve.
Una clase Message
realiza una función de asignación para que los datos entrantes se puedan extraer y proporcionar correctamente al método de servicio, o bien se puedan proporcionar correctamente a la respuesta saliente.
Si una solicitud tiene argumentos de ruta o de cadena de consulta, se usa una clase ResourceContainer
en lugar de una clase Message
para la asignación.
Por último, debes decorar la clase de servicio de la API y los métodos de clase, así como definir clases Message
para las solicitudes y las respuestas.
Crear la API
En el siguiente procedimiento se muestra cómo decorar el código para crear una API implementada en una sola clase. Si tienes una API de varias clases, consulta Crear una API implementada con varias clases. Consulta la sección Decoradores para obtener información detallada sobre todos los decoradores disponibles.
Para crear una API, sigue estos pasos:
Añade las siguientes importaciones obligatorias:
Define una subclase de
remote.Service
y decórala con@endpoints.api
:Ten en cuenta que el nombre de tu API y el nombre de tu clase de servicio no tienen por qué ser el mismo. El número de versión se aplica a la versión de la API. El valor que introduzcas formará parte de la ruta de la URL de tu API. Para obtener más información sobre las versiones, consulte Gestión de versiones de la API.
Determina qué datos espera tu método de la solicitud y qué datos se devuelven, y crea una clase
Message
para el cuerpo de la solicitud y el cuerpo de la respuesta:Ten en cuenta que, si no aparece ningún argumento en el cuerpo de la solicitud, como en una solicitud
GET
, puedes omitir la claseMessage
de la solicitud y usar simplemente el valormessage_types.VoidMessage
.Si tu solicitud tiene argumentos de ruta o de cadena de consulta, sustituye tu clase
Message
por unResourceContainer
adecuado.Para obtener información completa sobre cómo formar y usar las clases
Message
, consulta la documentación de las clasesMessage
de solicitud y respuesta de Google Protocol RPC.Crea el método de tu API y decóralo con
@endpoints.method
:Si tu solicitud tiene datos de ruta o de cadena de consulta, sustituye el tipo de mensaje de solicitud por un
ResourceContainer
adecuado.Añade el código para servir tu API, tal como se describe en el artículo sobre cómo crear un servidor web.