Guía de inicio rápido de Cloud Endpoints

Esta guía de inicio rápido te explicará cómo implementar una API de muestra que administra Cloud Endpoints. El código de muestra incluye lo siguiente:

  • Una API de REST que puedes consultar para obtener el nombre de un aeropuerto a partir de su código de IATA de tres letras
  • Una secuencia de comandos que sube la configuración de la API a Cloud Endpoints
  • Una secuencia de comandos que implementa un backend de App Engine Flexible donde se alojará la API de muestra

Luego de enviar algunas solicitudes a la API de muestra, podrás ver los grafos de actividad de Cloud Endpoints y los registros de Stackdriver en Google Cloud Platform (GCP) Console. Estas herramientas permiten supervisar tus API y obtener información valiosa sobre su uso.

Esta guía de inicio rápido utiliza secuencias de comando para que los pasos de configuración te resulten más simples y puedas ver con rapidez los grafos de actividad y los registros en acción. Para aprender a configurar y a implementar una API de muestra, selecciona un instructivo de uno de los marcos de trabajo de API.

Antes de comenzar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Select or create a GCP project.

    Go to the Project selector page

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

Cómo iniciar Cloud Shell

  1. Asegúrate de estar en el proyecto que quieres usar para la API de muestra.

  2. Haz clic en el botón Activar Google Cloud Shell en la parte superior de la ventana de la consola.

Activar Cloud Shell

Se abrirá una sesión de Cloud Shell en un marco nuevo en la parte inferior de la consola, que mostrará una ventana emergente con una línea de comandos. La sesión del shell puede tardar unos segundos en inicializarse.

Sesión de Cloud Shell

Si usas un proyecto existente, asegúrate de tener la versión más reciente de todos los componentes gcloud instalados. Para hacerlo, ejecuta:

gcloud components update

Cómo obtener el código de muestra

  1. Ingresa el comando que se detalla a continuación en Cloud Shell para obtener las secuencias de comandos y la API de muestra:

    git clone https://github.com/GoogleCloudPlatform/endpoints-quickstart
    
  2. Cambia al directorio que contiene el código de muestra:

    cd endpoints-quickstart
    

Cómo implementar la configuración de Endpoints

Para publicar una API de REST en Endpoints, se requiere un archivo de configuración de OpenAPI que la describa. La API de muestra viene con un archivo de OpenAPI preconfigurado con el nombre openapi.yaml.

Cloud Endpoints utiliza Google Service Management, un servicio de infraestructura de Cloud Platform, para crear y administrar las API y los servicios. Si quieres usar Endpoints para administrar una API, debes implementar la configuración de OpenAPI correspondiente en Service Management.

Cómo implementar la configuración de Endpoints:

  1. En el directorio endpoints-quickstart, ingresa el comando siguiente en Cloud Shell:

    cd scripts
    
  2. Ejecuta la siguiente secuencia de comandos que se incluye en la muestra:

    ./deploy_api.sh
    

Cloud Endpoints utiliza el campo host en el archivo de configuración de OpenAPI para identificar el servicio. La secuencia de comandos deploy_api.sh configura el ID de tu proyecto de Cloud como parte del nombre configurado en el campo host. (Cuando prepares un archivo de configuración de OpenAPI para tu propio servicio, deberás realizar este proceso de forma manual).

A continuación, la secuencia de comandos implementará la configuración de OpenAPI en Service Management con el siguiente comando: gcloud endpoints services deploy openapi.yaml.

Service Management, mientras crea y configura el servicio, exporta una gran cantidad de información a la consola. Puedes ignorar sin riesgo las advertencias que avisan que las rutas de openapi.yaml no requieren una clave de API. Cuando el proceso finalice con éxito, verás una línea como la siguiente que indica el ID de configuración del servicio y el nombre del servicio:

    Service Configuration [2017-02-13-r2] uploaded for service [airports-api.endpoints.example-project.cloud.goog]

Cómo implementar el backend de la API

Hasta ahora, implementaste la configuración de OpenAPI en Service Management, pero aún no implementaste el código que entregará el backend de la API. La secuencia de comandos deploy_app.sh incluida en la muestra crea un entorno de App Engine Flexible en el que se alojará el backend de la API y, luego, implementa la API en App Engine.

Para implementar el backend de la API, sigue los pasos que se indican a continuación:

En el directorio endpoints-quickstart/scripts, ejecuta la siguiente secuencia de comandos:

./deploy_app.sh

La secuencia de comandos ejecuta el siguiente comando para crear un entorno de App Engine Flexible en la región us-central: gcloud app create --region="$REGION" .

La creación del backend de App Engine Flexible tarda varios minutos. Luego de que se crea el App Engine, verás el siguiente mensaje en la consola:

Success! The app is now created.

A continuación, la secuencia de comandos ejecutará el comando gcloud app deploy para implementar la API de muestra en App Engine.

Verás una línea como la que se muestra a continuación en la consola:

Deploying ../app/app_template.yaml...You are about to deploy the following services:

La implementación de la API en App Engine tarda varios minutos. Una vez que la API se haya implementado con éxito en App Engine, verás una línea como la siguiente:

Deployed service [default] to [https://example-project.appspot.com]

Cómo enviar solicitudes a la API

Después de implementar la API de muestra, podrás enviarle solicitudes. Para hacerlo, ejecuta la siguiente secuencia de comandos:

./query_api.sh

La secuencia de comandos replica el comando curl que utiliza para enviar la solicitud a la API y, a continuación, muestra el resultado. Verás lo siguiente en la consola:

curl "https://example-project.appspot.com/airportName?iataCode=SFO"
San Francisco International Airport

La API espera un parámetro de búsqueda, iataCode, que corresponda con un código aeroportuario de IATA válido, como SEA o JFK. Por ejemplo:

./query_api.sh JFK

Nota: App Engine puede tardar unos minutos en responder a las solicitudes con éxito. Si envías una solicitud y recibes un error HTTP 502, 503 o algún otro error de servidor, espera un minuto y luego inténtalo de nuevo.

Acabas de implementar y probar una API en Cloud Endpoints.

Cómo realizar un seguimiento de la actividad de la API

En las API implementadas con Cloud Endpoints, puedes supervisar las métricas de operaciones esenciales por medio de Google Cloud Platform Console y obtener información valiosa sobre los usuarios y el uso con Stackdriver Logging.

  1. Ejecuta la secuencia de comandos de generación de tráfico para propagar los grafos y registros.

    ./generate_traffic.sh
    
  2. Revisa los grafos de actividad de tu API en la página de Endpoints.
    Ver los grafos de actividad de Endpoints

    Hasta que la solicitud se vea reflejada en los grafos pueden pasar unos minutos. Mientras esperas a que se muestren los datos, puedes hacer lo siguiente:

    • Si el panel lateral Permisos no está abierto, haz clic en +Permisos. Este panel te permite controlar quiénes tienen acceso a tu API y el nivel de acceso que se les otorga.

    • Haz clic en Historial de implementaciones. En esta pestaña, se muestra el historial de implementaciones de tu API, que incluye información sobre la hora de implementación y quién realizó el cambio.

    • Haz clic en Descripción general. Deberías ver el tráfico entrante. Una vez que la secuencia de comandos de generación de tráfico se haya ejecutado durante un minuto, deberías ver tres líneas en el grafo de latencia total (percentiles 50, 95 y 98). Estos datos ofrecen una estimación rápida de los tiempos de respuesta.

  3. Desplázate hasta la parte inferior de los grafos de Endpoints y, en Methods, haz clic en GET/airportName. La página del visor de registros muestra los registros de solicitud de la API.

  4. Haz clic en el botón Activar Cloud Shell en la parte superior de la ventana de la consola para mostrar Cloud Shell.

  5. Presiona Ctrl-C para detener la secuencia de comandos.

Cómo agregar una cuota a la API

Cloud Endpoints te permite configurar cuotas para controlar la frecuencia con la que las aplicaciones pueden llamar a tu API. Puedes usar las cuotas para proteger tu API del uso excesivo por parte de un solo cliente.

  1. Implementa la configuración de Endpoints que tiene una cuota:

    ./deploy_api.sh ../openapi_with_ratelimit.yaml
    

    Cuando implementas una configuración actualizada de Endpoints, se activa en el plazo de un minuto.

  2. Dirígete a la página de credenciales.
    Credenciales

  3. Haz clic en Crear credenciales y selecciona clave de API. Se mostrará una nueva clave de API en la pantalla. Haz clic en el ícono del rectángulo doble para copiarla en el portapapeles.

  4. En Cloud Shell, ingresa lo siguiente. Reemplaza YOUR-API-KEY con la clave de API que acabas de crear.

    export API_KEY=YOUR-API-KEY
    
  5. Envía una solicitud a tu API con la clave de API que acabas de generar.

    ./query_api_with_key.sh $API_KEY
    

    Verás lo siguiente en la consola:

    curl -H 'x-api-key: AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB' "https://example-project.appspot.com/airportName?iataCode=SFO"
    San Francisco International Airport
    

  6. Ahora, la API tiene un límite de 5 solicitudes por minuto. Ejecuta el siguiente comando para enviar tráfico a la API y activar el límite de la cuota:

    ./generate_traffic_with_key.sh $API_KEY
    
  7. Una vez que la secuencia de comandos se haya ejecutado durante 5 a 10 segundos, presiona Ctrl-C para detenerla.

  8. Envía otra solicitud autenticada a la API.

    ./query_api_with_key.sh $API_KEY
    

Verás lo siguiente en la consola:

{
 "code": 8,
 "message": "Insufficient tokens for quota 'airport_requests' and limit 'limit-on-airport-requests' of service 'example-project.appspot.com' for consumer 'api_key:AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB'.",
 "details": [
  {
   "@type": "type.googleapis.com/google.rpc.DebugInfo",
   "stackEntries": [],
   "detail": "internal"
  }
 ]
}

Si obtienes una respuesta distinta, prueba ejecutar la secuencia de comandos generate_traffic_with_key.sh de nuevo y vuelve a intentarlo.

Felicitaciones. Estableciste un límite de frecuencia para tu API con éxito. También puedes establecer otros tipos de límites con distintos métodos de API, crear varias categorías de cuotas y realizar un seguimiento de cuáles consumidores utilizan ciertas API.

Ver los grafos de actividad de Endpoints

Para obtener más información, consulta Acerca de las cuotas.

Cómo crear un portal de desarrolladores para la API

Puedes utilizar el Portal de Cloud Endpoints para crear un portal de desarrolladores, un sitio web en el que puedes interactuar con la API de muestra. Para obtener más información, consulta Descripción general del Portal de Cloud Endpoints.

Cómo realizar una limpieza

Para evitar que se apliquen cargos a tu cuenta de GCP por los recursos que se utilizan en esta guía de inicio rápido, usa lo siguiente:

Para evitar que se apliquen cargos a la cuenta, puedes borrar el proyecto de GCP y detener la facturación de todos los recursos que usa.

  1. In the GCP Console, go to the Projects page.

    Go to the Projects page

  2. In the project list, select the project you want to delete and click Delete .
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.