Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Publica APIs con Apigee X

Lab 45 minutos universal_currency_alt 5 créditos show_chart Intermedio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

GSP843

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

Las APIs están diseñadas para que las usen los desarrolladores de apps, quienes las aprovechan para brindar experiencias únicas a sus usuarios. La plataforma de APIs de Apigee de Google Cloud se puede utilizar para publicar APIs y hacer que estén disponibles para el uso de los desarrolladores de apps.

En este lab, crearás un proxy de API de Apigee, que requiere la verificación de la clave de API para restringir el acceso a la API.

Crearás productos de API para proporcionar diferentes niveles de servicio a los desarrolladores de aplicaciones internos y externos. Usarás una política de cuotas para limitar la cantidad de llamadas de cada aplicación específica. Crearás una política de CORS para agregar la funcionalidad de uso compartido de recursos entre dominios a la API, lo que permite llamarla desde aplicaciones web. Luego, crearás un portal para desarrolladores y publicarás los productos de API para que los primeros los usen.

Qué aprenderás

En este lab, aprenderás a realizar las siguientes tareas:

  • Verificar una clave de API para restringir el acceso a una API y hacer un seguimiento del uso de la aplicación
  • Crear productos de API para proporcionar diferentes niveles de acceso a distintos tipos de desarrolladores de apps
  • Usar la política de cuotas para limitar la cantidad de llamadas de una aplicación en particular según el producto de API adjunto
  • Agregar la funcionalidad de uso compartido de recursos entre dominios (CORS) a una API para permitir llamadas a la API entre dominios desde aplicaciones web
  • Crear un portal para desarrolladores y publicar los productos de API

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón para abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haz clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar. Ícono del menú de navegación y campo de búsqueda

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

  2. Haz clic para avanzar por las siguientes ventanas:

    • Continúa en la ventana de información de Cloud Shell.
    • Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

Resultado:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.

Abre la consola de Apigee

Para abrir la consola de Apigee, haz lo siguiente:

  • En el campo Buscar de la consola de Google Cloud, ingresa Apigee y, luego, haz clic en Administración de APIs de Apigee en los resultados de la búsqueda.

Se abrirá la consola de Apigee y, en la página de destino, se mostrarán vínculos rápidos a ubicaciones de uso frecuente.

  • En el menú de navegación (Menú de navegación), junto a Apigee, haz clic en Favorito (Ícono de favorito).

Apigee ahora se agregó como favorito al menú de navegación.

Tarea 1: Crea un proxy de servicio de backend con un proxy de API de Apigee

En esta tarea, crearás un proxy de API de Apigee que funcionará como una fachada para un servicio de backend. El proxy de API usará una cuenta de servicio para permitirle presentar tokens de identidad de OpenID Connect al servicio de Cloud Run.

Ya se creó un servicio de backend llamado simplebank-rest y se implementó en Cloud Run.

Crea el proxy de Apigee

  1. En Cloud Shell, para recuperar la URL del servicio de backend, usa el siguiente comando:
gcloud run services describe simplebank-rest --platform managed --region {{{project_0.default_region |REGION}}} --format 'value(status.url)'

Guarda esta URL. Se usará cuando se cree el proxy de API.

  1. En el menú de navegación de Apigee, selecciona Proxy development > API proxies.

  2. Para crear un proxy nuevo con el asistente de proxy, haz clic en +Crear.

    Crearás un proxy inverso para tu servicio de backend.

  3. En Proxy template, selecciona General template > Reverse proxy (Most common).

    Nota: No uses la selección Reverse proxy (Most common) en la sección de la plantilla de especificaciones de OpenAPI.
  4. Especifica lo siguiente para Proxy details:

    Propiedad Valor
    Proxy name bank-v1
    Base path /bank/v1
    Target (Existing API) URL de backend
    Nota: Verifica que estés usando "/bank/v1" para la ruta base y no "/bank-v1".

    El destino debe ser la URL de backend que recuperaste anteriormente en la tarea, que debería verse de la siguiente manera:

    https://simplebank-rest-mtdtzt7yzq-ue.a.run.app
  5. Haz clic en Next.

  6. Deja la configuración de Deploy (optional) con sus valores predeterminados y haz clic en Create.

Tarea 2: Agrega una política VerifyAPIKey

En esta tarea, agregarás una política VerifyAPIKey al proxy de API. Se rechazará cualquier solicitud que no proporcione una clave de API válida.

Una política VerifyAPIKey aplica la verificación de las claves de API en el entorno de ejecución, de manera que solo las aplicaciones que tengan estas claves aprobadas puedan acceder a la API. La política garantiza que la clave de API sea válida, no se haya revocado y esté aprobada para consumir el recurso específico que se solicita.

Agrega la política VerifyAPIKey

  1. Haz clic en la pestaña Develop:

  2. En el menú Navigator del proxy, en la sección Proxy Endpoints, haz clic en PreFlow.

    La política VerifyAPIKey debe colocarse al principio del proxy de API. El PreFlow de solicitud en el extremo de proxy predeterminado es el primer flujo que se ejecuta cuando una solicitud ingresa al proxy de API.

  3. En el panel Flow, haz clic en el botón + Add Policy Step en la parte superior derecha, sobre el flujo de solicitud.

  4. Selecciona Create new policy y, en Select policy, en la sección Security, selecciona Verify API Key y, luego, establece el Display name y el Name como VAK-VerifyKey.

  5. Haz clic en Agregar.

  6. Haz clic en el nombre VAK-VerifyKey.

    La configuración de VerifyAPIKey se muestra en el panel Code en Policies.

    El elemento APIKey indica dónde se proporciona la clave de API en la solicitud.

  7. En el elemento APIKey, reemplaza request.queryparam.apikey por request.header.apikey.

    Es menos probable que se registre o guarde una clave de API en el historial del navegador si se especifica en un encabezado.

Modifica el destino al que se debe enviar un token de identidad de OpenID Connect

El servicio de backend se implementa para requerir acceso autenticado, por lo que no puedes llamar al servicio sin un token de identidad de OpenID Connect válido.

El objeto HTTPTargetConnection especifica el destino de backend para el servicio.

  1. En el menú Navigator del proxy, en la sección Target Endpoints, haz clic en PreFlow.

  2. Busca el siguiente código (tu URL será diferente):

    <HTTPTargetConnection> <URL>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</URL> </HTTPTargetConnection>
Nota: Si no ves la sección HTTPTargetConnection, asegúrate de haber hecho clic en PreFlow en la sección Target Endpoints, no en la sección Proxy Endpoints.
  1. Debajo de la URL, agrega una sección Authentication que se vea de la siguiente manera:
<Authentication> <GoogleIDToken> <Audience>AUDIENCE</Audience> </GoogleIDToken> </Authentication>
  1. Reemplaza AUDIENCE por el valor de URL que ya se encuentra en la sección HTTPTargetConnection. Ahora, tu código debería ser similar al siguiente, excepto que tendrá tu URL específica en los elementos URL y Audience:
<TargetEndpoint name="default"> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows/> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <HTTPTargetConnection> <URL>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</URL> <Authentication> <GoogleIDToken> <Audience>https://simplebank-rest-zce6j3rjwq-uw.a.run.app</Audience> </GoogleIDToken> </Authentication> </HTTPTargetConnection> </TargetEndpoint>
  1. Haz clic en Guardar.

Confirma que la instancia del entorno de ejecución esté disponible

  1. En Cloud Shell, pega y ejecuta el siguiente conjunto de comandos:

    export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; if [ -z "${GOOGLE_CLOUD_PROJECT}" ]; then echo "Error: GOOGLE_CLOUD_PROJECT environment variable is not set. Please set it to your project ID."; else export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\" or (.environment | endswith(\"/${ENV_NAME}\"))) | .environment" --raw-output); [[ -n "${ATTACHMENT_DONE}" ]] && break; echo -n "."; sleep 5; done; echo; echo "${ENV_NAME} environment attached"; echo "***ORG IS READY TO USE***"; fi

    Esta serie de comandos usa la API de Apigee para determinar cuándo se creó la instancia del entorno de ejecución de Apigee y se conectó el entorno de evaluación.

  2. Espera hasta que la instancia esté lista.

    Cuando se muestra el texto ***ORG IS READY TO USE***, la instancia está lista. Es posible que la organización de Apigee (org) se haya creado antes de que comenzaras el lab, por lo que tal vez no tengas que esperar a que se cree la instancia.

    Si estás esperando a que la organización esté lista, puedes obtener información sobre los productos de API, el CORS (uso compartido de recursos entre dominios) y los portales para desarrolladores.

Implementa el proxy de API

  1. En el menú de navegación de Apigee, selecciona Desarrollo de proxies > Proxies de API y, luego, haz clic en bank-v1.

  2. Haz clic en Implementar.

  3. En Environment, selecciona eval.

  4. En Cuenta de servicio, especifica la dirección de correo electrónico de la cuenta de servicio:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  5. Haz clic en Implementar y, luego, en Confirmar.

  6. Espera a que el estado de implementación eval muestre que se implementó el proxy.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear el proxy de Apigee y agregar la política VerifyAPIKey

Prueba el proxy de API

Se puede llamar al entorno de evaluación en la organización de Apigee con el nombre de host eval.example.com. La entrada de DNS para este nombre de host se creó dentro de tu proyecto y se resuelve en la dirección IP de la instancia de entorno de ejecución de Apigee. Esta entrada de DNS se creó en una zona privada, lo que significa que solo es visible en la red interna.

Cloud Shell no reside en la red interna, por lo que los comandos de este entorno no pueden resolver esta entrada de DNS. Una máquina virtual (VM) dentro de tu organización puede acceder al DNS de la zona privada. Se creó automáticamente una máquina virtual llamada apigeex-test-vm. Puedes usar esta máquina para llamar al proxy de API.

  1. En Cloud Shell, abre una conexión SSH a tu VM de prueba:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Si se te solicita autorización, haz clic en Autorizar.

  3. Para cada pregunta que se haga en Cloud Shell, haz clic en Intro o Retorno para especificar la entrada predeterminada.

    La identidad con la que accediste es la propietaria del proyecto, por lo que se permite la conexión SSH a esta máquina.

    Tu sesión de Cloud Shell ahora se ejecuta dentro de la VM.

  4. Llama al proxy de API bank-v1 implementado en el entorno eval:

    curl -i -k -X GET "https://eval.example.com/bank/v1/customers"

    La opción -k le indica a curl que omita la verificación del certificado TLS. El entorno de ejecución de Apigee en este lab usa un certificado autofirmado en lugar de uno creado por una autoridad certificadora (AC) de confianza.

    Nota: No debe usarse la opción -k para omitir la verificación de certificados en casos de uso de producción.

    Esta API intenta recuperar una lista de clientes. Ahora deberías ver una respuesta 401 Unauthorized similar a esta:

    HTTP/2 401 content-type: application/json x-request-id: 01e8da87-dc8c-4428-9cdf-8bea84e98860 content-length: 146 date: Tue, 07 Dec 2021 22:54:37 GMT via: 1.1 google {"fault":{"faultstring":"Failed to resolve API Key variable request.header.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

    Esta respuesta indica que el proxy de API bloqueó el acceso al servicio de backend porque no se proporcionó la clave de API.

  5. Ingresa el comando exit para salir de la sesión de SSH y regresar a Cloud Shell.

Tarea 3: Agrega productos de API y una aplicación

En esta tarea, agregarás productos de API que proporcionarán diferentes niveles de acceso a tu API. Luego, crearás dos aplicaciones y asociarás productos de API independientes para ellas, lo que les proporcionará diferentes accesos.

Crea el primer producto de API

El primer producto de API proporciona acceso completo al servicio.

  1. En el menú de navegación de Apigee, selecciona Distribución > Productos de API.

  2. Para crear un producto de API nuevo, haz clic en + CREATE.

  3. En el panel Product details, especifica lo siguiente:

    Propiedad Valor
    Nombre bank-fullaccess
    Nombre visible banco (acceso completo)
    Descripción permite el acceso total a la API del banco
    Entorno selecciona eval
    Acceso selecciona Público

    Deja seleccionada la opción Automatically approve access requests.

  4. En la sección Operations, haz clic en + Add an Operation.

    Las operaciones se usan para especificar qué solicitudes en qué proxies de API se permiten para una aplicación asociada con el producto de API.

    Nota: Confirma que el botón se encuentre en la sección "Operations", no en la sección "GraphQL Operations".
  5. Especifica lo siguiente:

    Nombre Valor
    Fuente selecciona el proxy de API bank-v1
    Ruta de acceso /**
    Métodos selecciona GET, PATCH, POST, PUT y DELETE

    La expresión de ruta de acceso "/**" indica que cualquier sufijo de ruta de acceso de cualquier profundidad coincide con la operación.

    En un entorno de producción, es posible que elijas agregar cada operación permitida por separado, en lugar de usar esta expresión de ruta de acceso comodín.

  6. Haz clic en Save para guardar la operación.

  7. En la sección Custom Attributes del producto de API, haz clic en + Add Custom Attribute.

    Los atributos personalizados se pueden usar para adjuntar cualquier dato que desees que esté disponible en el proxy para controlar el acceso.

    En este caso, como se trata del producto de API de acceso completo para tu API de Retail, crearás un atributo personalizado que indique que se debe permitir el acceso completo a la aplicación que llama a la API.

  8. Especifica lo siguiente:

    Propiedad Valor
    Nombre full-access
    Valor yes
  9. Haz clic en OK para guardar el atributo personalizado.

  10. Para guardar el producto de API, haz clic en Save en la parte superior de la página.

  11. Vuelve a la página Distribución > Productos de API. Se mostrará el producto de API en la lista.

Haz clic en Revisar mi progreso para verificar el objetivo. Agregar productos de API y una aplicación

Crea un producto de API que proporcione acceso limitado

El segundo producto de la API brindará acceso de solo lectura al servicio.

  1. Para crear un producto de API nuevo, haz clic en + CREATE.

  2. En el panel Product details, especifica lo siguiente:

    Propiedad Valor
    Nombre bank-readonly
    Nombre visible banco (solo lectura)
    Descripción permite el acceso de solo lectura a la API del banco
    Entorno selecciona eval
    Acceso selecciona Público

    Deja seleccionada la opción Automatically approve access requests.

  3. En la sección Operations, haz clic en + Add an Operation.

    Nota: Confirma que el botón se encuentre en la sección "Operations", no en la sección "GraphQL Operations".
  4. Especifica lo siguiente:

    Propiedad Valor
    Fuente selecciona el proxy de API bank-v1
    Ruta de acceso /**
    Métodos selecciona GET
  5. Haz clic en Save para guardar la operación.

  6. Para guardar el producto de API, haz clic en Save en la parte superior de la página.

  7. Vuelve a la página Distribución > Productos de API. Se mostrará el producto de API en la lista.

Crea un desarrollador de apps

Antes de crear una app, debes crear un desarrollador de apps.

Nota: Por lo general, los desarrolladores de apps se crean con un portal para desarrolladores, y tú crearás el tuyo más adelante en el lab. Por el momento, usa la consola de Apigee para crear el desarrollador.
  1. En el menú de navegación de Apigee, haz clic en Distribución > Desarrolladores.

  2. Para crear un nuevo desarrollador de apps, haz clic en +CREATE.

  3. Especifica lo siguiente:

    Propiedad Valor
    Nombre Joe
    Apellido Developer
    Correo electrónico joe@example.com
    Nombre de usuario joe
  4. Haz clic en AGREGAR para crear el desarrollador de apps.

Crea una app con acceso de solo lectura

  1. En el menú de navegación de Apigee, haz clic en Distribución > Apps.

  2. Para crear una app nueva, haz clic en + CREATE.

  3. En el panel Detalles de la app, especifica lo siguiente:

    Propiedad Valor
    Nombre readonly-app
    Desarrollador selecciona Joe Developer
  4. En el panel Credentials, haz clic en + ADD CREDENTIAL y, luego, en + ADD PRODUCTS, selecciona banco (solo lectura) y, luego, haz clic en Agregar.

    En Product, haz clic en la casilla de verificación junto a banco (solo lectura) y, luego, en APPROVE.

  5. Haz clic en Create para crear la app.

    Ahora, la Key y el Secret están configurados para la app.

  6. En el menú de navegación de Apigee, haz clic en Distribución > Apps > readonly-app.

  7. En Credentials, haz clic en Show junto a Key.

    Esta es la clave de API que se usará para llamar a la API. Podrías copiar la clave, pero en los próximos pasos se utilizará una llamada curl a la API de Apigee para recuperar la clave de API.

Crea una app con acceso total

  1. En el menú de navegación de la izquierda, haz clic en Distribución > Apps.

  2. Para crear una app nueva, haz clic en + CREATE.

  3. En el panel Detalles de la app, especifica lo siguiente:

    Propiedad Valor
    Nombre fullaccess-app
    Desarrollador selecciona Joe Developer
  4. En el panel Credentials, haz clic en + ADD CREDENTIAL y, luego, en + ADD PRODUCTS, selecciona banco (acceso completo) y, luego, haz clic en Agregar.

    En Product, haz clic en la casilla de verificación junto a banco (acceso completo) y, luego, en APPROVE.

  5. Haz clic en Create para crear la app.

  6. En el menú de navegación de Apigee, haz clic en Distribución > Apps > fullaccess-app.

  7. En Credentials, haz clic en Show junto a Key.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un producto de API que proporcione acceso limitado

Prueba con la clave de API

  1. En Cloud Shell, abre una conexión SSH a tu VM de prueba:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Si se te solicita autorización, haz clic en Autorizar.

    Tu sesión de Cloud Shell ahora se ejecuta dentro de la VM.

  3. Para obtener la clave de API de la aplicación de solo lectura, ejecuta los siguientes comandos:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/readonly-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY=${API_KEY}"

    El primer comando lee la configuración de gcloud para obtener el proyecto actual. El segundo comando recupera la clave de API con la API de Apigee. La solicitud se autoriza porque envías un token de acceso que tiene los permisos del usuario que accedió a la cuenta.

  4. Llama al proxy de API bank-v1 implementado en el entorno eval con una clave de API falsa:

    curl -i -k -X GET -H "apikey: ABC123" "https://eval.example.com/bank/v1/customers"

    La respuesta es 401 Unauthorized con una falla que indica que la clave de API no era válida.

  5. Llama al proxy de API bank-v1 implementado en el entorno eval con la clave de API real:

    curl -i -k -X GET -H "apikey: ${API_KEY}" "https://eval.example.com/bank/v1/customers"

    Se permite la solicitud y la respuesta contiene una lista de clientes.

  6. Realiza otra llamada al proxy de API bank-v1 implementado en el entorno eval, nuevamente con la clave de API real:

    curl -i -k -X POST -H "apikey: ${API_KEY}" -H "Content-Type: application/json" "https://eval.example.com/bank/v1/customers" -d '{"firstName": "Julia", "lastName": "Dancey", "email": "julia@example.org"}'

    Esta vez, la respuesta es 401 Unauthorized con una falla que indica que la clave de API no es válida para el recurso determinado. Se rechazó la solicitud porque la clave de API proporcionada está asociada con el producto de API de solo lectura, que no permite solicitudes POST.

  7. Ingresa exit para salir de la sesión SSH de la máquina virtual.

Tarea 4: Aplica una cuota

En esta tarea, agregarás una política de cuotas que limitará la cantidad de solicitudes que se permitirán por aplicación durante un período específico. La política Quota usará una configuración de cuota que se especificó en los productos de API.

Agrega la política de cuotas

  1. En el menú de navegación de Apigee, selecciona Desarrollo de proxies > Proxies de API y, luego, haz clic en bank-v1.

  2. Haz clic en la pestaña Develop:

  3. En el menú Navigator del proxy, en la sección Proxy Endpoints, haz clic en PreFlow.

    La política de cuotas verificará que no se haya superado la cuota de una aplicación específica. Si se alcanzó el límite, la política de cuotas generará una falla y se anulará la solicitud. Si no se alcanzó el límite, se disminuirá la cantidad de solicitudes permitidas.

    La política de cuotas determina qué aplicación es la que llama en función de una variable propagada por la política VerifyAPIKey. Por eso, la política Quota debe colocarse después de la política VerifyAPIKey.

  4. En el panel Flow, haz clic en el botón + Add Policy Step en la parte superior derecha, sobre el flujo de solicitud.

  5. Selecciona Create new policy y, en Select policy, en la sección Traffic Management, selecciona Quota y, luego, establece el Display Name y el Name en Q-EnforceQuota.

  6. Haz clic en Agregar.

  7. Haz clic en el nombre Q-EnforceQuota.

    La configuración de Quota se muestra en el panel Code.

  8. Cambia la configuración de Quota a lo siguiente:

    <Quota continueOnError="false" enabled="true" name="Q-EnforceQuota" type="calendar"> <Identifier ref="client_id"/> <UseQuotaConfigInAPIProduct stepName="VAK-VerifyKey"> <DefaultConfig> <Allow>2</Allow> <Interval>1</Interval> <TimeUnit>hour</TimeUnit> </DefaultConfig> </UseQuotaConfigInAPIProduct> <Distributed>true</Distributed> <Synchronous>true</Synchronous> <StartTime>2021-01-01 00:00:00</StartTime> </Quota>

    Usarás el producto de API para especificar la tarifa permitida. El stepName en el elemento UseQuotaConfigInAPIProduct especifica qué paso determinará el producto de API.

    Cuando se valida una clave de API o un token de OAuth, se puede asociar con una app que esté vinculada a un producto de API. Con estos parámetros de configuración de la política, el paso VerifyAPIKey llamado VAK-VerifyKey determina el producto de API. La política VerifyAPIKey debe ejecutarse antes de la política Q-EnforceQuota.

    Los valores de configuración predeterminados especificados en la política Quota indican un máximo de 2 solicitudes (Allow) cada 1 (Interval) mes (TimeUnit). Los valores predeterminados solo se usarán si los valores no están disponibles, lo que solo debería ocurrir si la configuración de cuotas no está establecida para el producto de API asociado con la clave de API.

  9. Haz clic en Guardar. Si recibes una notificación de que el proxy se guardó como una revisión nueva, haz clic en GUARDAR COMO REVISIÓN NUEVA.

  10. Haz clic en Implementar.

  11. En Cuenta de servicio, especifica la dirección de correo electrónico de la cuenta de servicio:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  12. Haz clic en Implementar y, luego, en Confirmar.

  13. Haz clic en la pestaña Descripción general y espera a que el estado de implementación eval muestre que se implementó el proxy.

Agrega una configuración de cuotas para el producto de API de acceso completo

  1. En el menú de navegación de Apigee, selecciona Distribución > Productos de API y, luego, haz clic en banco (acceso completo).
  2. Haz clic en Editar.
  3. En la línea bank-v1 de la sección Operations, haz clic en el ícono del menú Actions (Menú de acciones) y selecciona Edit.
  4. Establece la cuota de la operación en 5 solicitudes cada 1 minuto y haz clic en Save para guardar la operación.
Nota: Asegúrate de editar la cuota que está configurada dentro de la operación.
  1. Haz clic en Save para guardar el producto de API.

Haz clic en Revisar mi progreso para verificar el objetivo. Aplicar una cuota

Inicia una sesión de depuración

Debug es una herramienta para solucionar problemas y supervisar proxies de API que se ejecutan en Apigee. La herramienta Debug te permite examinar los detalles de cada paso durante una llamada a la API.

  1. En el menú de navegación de Apigee, selecciona Desarrollo de proxies > Proxies de API y, luego, haz clic en bank-v1.

  2. Haz clic en la pestaña Debug.

  3. Haz clic en Start a debug session.

  4. En el panel Start a debug session, en el menú desplegable del entorno, selecciona eval.

  5. Haz clic en Iniciar.

    Es posible que la sesión de depuración tarde un poco en comenzar a captar solicitudes.

Nota: Si ves mensajes de error en cuadros rojos cerca de la parte superior de la pantalla, con descripciones como "Error fetching debug transactions" o "List debug session transaction error", es posible que tu sesión de depuración siga funcionando correctamente.

Realizarás solicitudes a la API y, luego, examinarás la sesión de depuración.

Prueba la cuota

  1. En Cloud Shell, abre una conexión SSH a tu VM de prueba:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Si se te solicita autorización, haz clic en Autorizar.

Tu sesión de Cloud Shell ahora se ejecuta dentro de la VM.

  1. Para obtener ambas claves de API, ejecuta los siguientes comandos:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY_READONLY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/readonly-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY_READONLY=${API_KEY_READONLY}" export API_KEY_FULL=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/fullaccess-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY_FULL=${API_KEY_FULL}"
  2. Envía esta solicitud de forma repetida hasta que obtengas un error de cuota:

    curl -i -k -X GET -H "apikey: ${API_KEY_READONLY}" "https://eval.example.com/bank/v1/customers" Nota: Para repetir rápidamente un comando en Cloud Shell o en una sesión de SSH, haz clic en la tecla de flecha hacia ARRIBA y, luego, presiona RETORNO o INTRO.

    El incumplimiento de la cuota se verá similar a lo siguiente:

    {"fault":{"faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : bKSV3nOz2JS5Z58sWMh2RBnnwWeEeNK2N2G6HMCESgLGDLFI","detail":{"errorcode":"policies.ratelimit.QuotaViolation"}}}
  3. Regresa a la pestaña de la IU de Apigee.

    Deberías ver algunas solicitudes 200 y una solicitud 429.

    Haz clic en una solicitud 200. El mapa de transacciones muestra un ícono de fábrica en el lado derecho, lo que indica que se llamó al backend.

  4. En el panel Debug session, haz clic en la flecha hacia la izquierda (<) en la parte superior izquierda.

  5. En el menú de navegación de Apigee, selecciona Desarrollo de proxies > Proxies de API y, luego, haz clic en bank-v1.

  6. Haz clic en la pestaña Debug.

  7. Haz clic en Start Debug Session para iniciar una nueva sesión de depuración.

  8. Vuelve a la sesión de SSH y, luego, envía esta solicitud de forma repetida con la clave de API de acceso completo hasta que se produzca un error de cuota:

    date; curl -i -k -X GET -H "apikey: ${API_KEY_FULL}" "https://eval.example.com/bank/v1/customers"

    Esta vez, deberías poder enviar al menos 5 solicitudes antes de que se rechacen con una respuesta 429. La cuota para el producto de la API de acceso completo es de 5 solicitudes por minuto. La cuota se restablece cuando la parte de segundos de la hora se restablece a cero. El comando anterior imprime la hora antes de llamar a la API, por lo que deberías poder ver la hora aproximada a la que se restablece la cuota.

  9. Ingresa exit para salir de la sesión SSH de la máquina virtual.

  10. Regresa a la pestaña de la IU de Apigee.

    Si seleccionas una solicitud y haces clic en el ícono de cuota, verás que las variables de cuota de VAK-VerifyKey ahora indican 5 solicitudes por minuto.

Tarea 5: Agrega CORS al proxy de API

En esta tarea, agregarás CORS (uso compartido de recursos entre dominios) al proxy bank-v1.

CORS es un protocolo que usa encabezados HTTP para indicar a los navegadores si es seguro acceder a recursos restringidos desde un dominio independiente. De forma predeterminada, la política de seguridad del mismo origen prohíbe las solicitudes entre dominios. La política del mismo origen protege a los usuarios del navegador de compartir sin saberlo información de la sesión con agentes maliciosos.

La política de mismo origen significa que, de forma predeterminada, una página web que se entrega desde www.example.com no puede llamar a las APIs en api.example.com porque el nombre de host es diferente. CORS se puede usar para permitir este tipo de acceso entre dominios.

Necesitarás CORS en la API bancaria para el portal de desarrolladores. Un portal para desarrolladores de Apigee tiene el nombre de dominio *.apigee.io, y se accede a la API a través de un dominio diferente. Para invocar la API desde la documentación, debes agregar encabezados de CORS a todas las respuestas de la API, incluidas las de error.

CORS también usa solicitudes preliminares. El navegador envía una solicitud preliminar con el verbo OPTIONS para averiguar si se permitirá la llamada siguiente.

La política de CORS puede controlar toda la funcionalidad de CORS.

Para obtener más información sobre CORS, consulta la documentación de CORS de Apigee.

Agrega la política de CORS

  1. En el menú de navegación de Apigee, selecciona Desarrollo de proxies > Proxies de API y, luego, haz clic en bank-v1.

  2. Haz clic en la pestaña Develop:

  3. En el menú Navigator del proxy, en la sección Proxy Endpoints, haz clic en PreFlow.

  4. En el panel Flow, haz clic en el botón + Add Policy Step en la parte superior derecha, sobre el flujo de solicitud.

  5. Selecciona Create new policy y, en Select policy, en la sección Security, selecciona CORS y, luego, establece el Display Name y el Name en CORS.

  6. Haz clic en Agregar.

    La configuración de la política de CORS se muestra debajo del panel Flow.

    AllowOrigins enumera los orígenes permitidos. La configuración predeterminada permite cualquier origen, ya que establece el origen permitido como el valor de Origin que se pasa en la solicitud. En un caso de uso de producción típico, es posible que solo permitas solicitudes de nombres de host específicos.

    AllowMethods especifica los métodos que se deben permitir para la API.

    AllowHeaders enumera los encabezados que se pueden pasar en la solicitud.

    ExposeHeaders especifica los encabezados de la respuesta que se deben permitir cuando se llama con un Origin. Con el valor predeterminado de *, no se quitarán los encabezados de la respuesta.

    MaxAge especifica cuánto tiempo un navegador puede almacenar en caché una respuesta preliminar, en segundos.

    AllowCredentials indica si se pueden enviar encabezados de autorización, certificados de cliente TLS o cookies en la solicitud.

    GeneratePreflightResponse especifica si se controlarán las solicitudes preliminares con el método OPTIONS.

  7. Haz clic en el nombre CORS.

  8. Reemplaza la configuración AllowHeaders por lo siguiente:

    <AllowHeaders>origin, x-requested-with, accept, content-type, apikey</AllowHeaders>

    Tu API usa el encabezado apikey para especificar una clave de API, por lo que se debe agregar para que se pueda llamar desde un navegador.

  9. Reemplaza el valor de MaxAge por -1.

    Esto inhabilitará el almacenamiento en caché de la respuesta preliminar del navegador, por lo que siempre verás la solicitud preliminar. En un caso de uso de producción, por lo general, permitirás el almacenamiento en caché de la respuesta para evitar realizar dos llamadas por solicitud.

  10. En el menú Navigator del proxy, en la sección Proxy Endpoints, haz clic en PreFlow.

    Cuando se agregó la política de CORS, se hizo automáticamente al final del flujo. Sin embargo, para las solicitudes preliminares, no se debería requerir una clave de API.

  11. Mueve la política de CORS antes de la política VAK-VerifyKey editando la configuración de PreFlow. Reemplaza lo siguiente:

    <PreFlow name="PreFlow"> <Request> <Step> <Name>VAK-VerifyKey</Name> </Step> <Step> <Name>Q-EnforceQuota</Name> </Step> <Step> <Name>CORS</Name> </Step> </Request> <Response/> </PreFlow>

    con:

    <PreFlow name="PreFlow"> <Request> <Step> <Name>CORS</Name> </Step> <Step> <Name>VAK-VerifyKey</Name> </Step> <Step> <Name>Q-EnforceQuota</Name> </Step> </Request> <Response/> </PreFlow>
  12. Haz clic en Guardar. Si recibes una notificación de que el proxy se guardó como una revisión nueva, haz clic en GUARDAR COMO REVISIÓN NUEVA.

  13. Haz clic en Implementar.

  14. En Cuenta de servicio, especifica la dirección de correo electrónico de la cuenta de servicio:

    apigee-internal-access@{{{ project_0.project_id | PROJECT }}}.iam.gserviceaccount.com
  15. Haz clic en Implementar y, luego, en Confirmar.

  16. Haz clic en la pestaña Descripción general y espera a que el estado de implementación eval muestre que se implementó el proxy.

Haz clic en Revisar mi progreso para verificar el objetivo. Agregar CORS al proxy de API

Inicia una sesión de depuración

  1. Haz clic en la pestaña Debug.

  2. Haz clic en Start a debug session.

  3. En el panel Start a debug session, en el menú desplegable del entorno, selecciona eval.

  4. Haz clic en Iniciar.

    Es posible que la sesión de depuración tarde un poco en comenzar a captar solicitudes.

Prueba la funcionalidad de CORS

  1. En Cloud Shell, abre una conexión SSH a tu VM de prueba:

    TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)") gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
  2. Si se te solicita autorización, haz clic en Autorizar.

    Tu sesión de Cloud Shell ahora se ejecuta dentro de la VM.

  3. Para obtener una clave de API, ejecuta los siguientes comandos:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/fullaccess-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY=${API_KEY}"
  4. Realiza una solicitud para recuperar la lista de clientes:

    curl -i -k -X GET -H "apikey: ${API_KEY}" "https://eval.example.com/bank/v1/customers"

    No hay un Origin, por lo que se omite la funcionalidad de CORS. Confirma que no se devuelva el encabezado Access-Control-Allow-Origin.

  5. Realiza otra solicitud, pero incluye el encabezado Origin esta vez. Esto prueba una solicitud de CORS normal:

    curl -i -k -X GET -H "Origin: https://www.example.com" -H "apikey: ${API_KEY}" "https://eval.example.com/bank/v1/customers"

    Se devuelven los encabezados access-control-* porque se proporcionó el Origin.

  6. Realiza una solicitud preliminar:

    curl -i -k -X OPTIONS -H "Origin: https://www.example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: Content-Type,apikey" "https://eval.example.com/bank/v1/customers"

    La política de CORS establece los encabezados de solicitud preliminar en la respuesta y bloquea la solicitud para que no continúe hasta el backend.

    Si vuelves a la IU de Apigee y observas la llamada OPTIONS en la herramienta Debug, puedes confirmar que la política de CORS no permitió que la llamada pasara al servicio de backend.

  7. Ingresa exit para salir de la sesión SSH de la máquina virtual.

Tarea 6: Descarga y modifica una especificación de OpenAPI

En esta tarea, descargarás y modificarás una especificación de OpenAPI que define la interfaz de tu proxy de API.

La especificación de OpenAPI se usará cuando publiques tu proxy de API en el portal para desarrolladores.

Descarga la especificación de OpenAPI y edítala

  1. En Cloud Shell, ejecuta este comando para descargar la especificación de OpenAPI de tu proxy de API:

    curl https://storage.googleapis.com/spls/shared/firestore-simplebank-data/dev-portal/simplebank-spec.yaml?$(date +%s) --output ~/simplebank-spec.yaml

    Este comando curl descarga un archivo llamado simplebank-spec.yaml y lo almacena en un archivo con el mismo nombre en el directorio principal.

Nota: "?$(date +%s)" agrega un parámetro de consulta a la URL que es una representación de cadena de la fecha y hora actuales. Esta variable que cambia de forma dinámica modifica la URL y obliga a curl a recuperar la versión más reciente de un archivo, incluso si se almacenó en caché una versión anterior.
  1. En Cloud Shell, haz clic en Abrir editor y, luego, en Abrir en una ventana nueva si es necesario.

    Botón del editor de Cloud Shell

  2. En el editor, selecciona el archivo simplebank-spec.yaml.

    Esta especificación de OpenAPI especifica la interfaz del proxy de API que creaste durante este lab. La especificación se usará para proporcionar documentación en vivo en el portal para desarrolladores.

    El portal para desarrolladores accede al proxy de Apigee desde la red externa. El nombre de host que estuviste usando, eval.example.com, solo está disponible en la red interna.

    Se aprovisionó un balanceador de cargas para proporcionar acceso externo al proxy de API. El acceso externo usa un nombre de host proporcionado por nip.io, que es un proveedor de DNS comodín.

    El nombre de host externo se verá similar a este:

    eval.60.70.80.90.nip.io

    Este nombre de host ya se especificó como un nombre de host coincidente para el grupo de entornos eval-group.

  3. En Cloud Shell, para recuperar la configuración de eval-group, usa el siguiente comando:

    curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/envgroups/eval-group"

    El array hostnames contiene dos nombres de host: uno sin una dirección IP (eval.example.com) y otro con una dirección IP (similar a eval.60.70.80.90.nip.io). Usarás el nombre de host con la dirección IP en la especificación de OpenAPI.

  4. En el editor, en la línea 10, reemplaza el nombre de host:

    eval.<IPADDR>.nip.io

    Una vez que reemplaces el nombre de host en la URL del servidor, la línea 10 debería verse similar a la siguiente:

    - url: "https://eval.60.70.80.90.nip.io/bank/v1"
  5. Haz clic en Archivo > Guardar.

  6. Haz clic con el botón derecho en simplebank-spec.yaml > Descargar.

    Esta acción descargará el archivo en tu máquina local. Usarás la especificación actualizada con el portal para desarrolladores.

Tarea 7: Crea un portal para desarrolladores y publica una API en él

En esta tarea, crearás un portal para desarrolladores integrado y, luego, publicarás tu API en él.

Crea un portal para desarrolladores integrado

  1. En el menú de navegación de Apigee, selecciona Distribución > Portales y haz clic en + CREATE.

  2. Ingresa banco como nombre y, luego, haz clic en Crear.

    La creación puede tardar un minuto y, luego, se abrirá la página de descripción general del portal.

  3. Si aparece el mensaje "Enroll in beta for team and audience management features", haz clic en Enroll.

Publica tu API en el portal

  1. En el menú de navegación de Apigee, selecciona Distribución > Portales y haz clic en banco.

  2. Haz clic en + API.

  3. Selecciona banco (acceso completo) como producto de API.

  4. Personaliza los detalles de la API:

    Propiedad Valor
    Publicado (se muestra en el catálogo) seleccionado
    Título para mostrar SimpleBank
    Descripción para mostrar API de SimpleBank v1
    Visibilidad de la API selecciona Público (visible para todos)

    Publicado hace que la API sea visible en el portal, y la visibilidad Público permite que se vean las APIs incluso si el usuario no accedió al portal.

  5. Haz clic en Seleccionar en Display Image y, luego, en la URL.

  6. Establece la URL de la imagen como sigue:

    https://storage.googleapis.com/spls/shared/firestore-simplebank-data/dev-portal/piggy-bank.png

    Deberías ver la imagen de una alcancía si haces clic en VISTA PREVIA.

  7. Haz clic en Seleccionar.

  8. En la sección Documentación de la API, selecciona Documento de OpenAPI.

  9. Haz clic en Select en Select File.

  10. Haz clic en Explore y selecciona el archivo de especificación de OpenAPI que descargaste de Cloud Shell (simplebank-spec.yaml).

  11. Haz clic en Seleccionar.

  12. Haz clic en Guardar.

  13. Para abrir el portal para desarrolladores en una pestaña nueva, haz clic en VER EL PORTAL EN VIVO en la esquina superior derecha.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un portal para desarrolladores y publicar una API en él

Inicia una sesión de depuración

  1. Vuelve al menú de navegación de Apigee, selecciona Desarrollo de proxies > Proxies de API y, luego, haz clic en bank-v1.
  2. Haz clic en la pestaña Debug.
  3. En el panel Start a debug session, en el menú desplegable del entorno, selecciona eval.
  4. Haz clic en Iniciar.

Prueba la API con el portal para desarrolladores

  1. En Cloud Shell, ejecuta el siguiente comando para obtener la clave de API de acceso completo:

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) echo "PROJECT_ID=${PROJECT_ID}" export API_KEY=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${PROJECT_ID}/developers/joe@example.com/apps/fullaccess-app" | jq ".credentials[0].consumerKey" --raw-output) echo "API_KEY=${API_KEY}"

    Copia la clave de API en el portapapeles.

  2. Regresa a la pestaña Live Portal y haz clic en APIs.

  3. Haz clic en la alcancía.

    Se muestra la API de SimpleBank.

  4. Haz clic en Autorizar.

  5. Pega la clave de API como la Clave.

  6. Haz clic en Autorizar y, luego, en Aceptar.

    Ahora, la clave de API se enviará con cualquier solicitud.

  7. En el menú de la izquierda, haz clic en /customers POST.

  8. Especifica el siguiente cuerpo de la solicitud:

    { "email": "mina@example.com", "lastName": "Yu", "firstName": "Mina" }
  9. Haz clic en Ejecutar.

    Una respuesta 200 OK indica que se creó el cliente.

  10. En el menú de la izquierda, haz clic en /customers GET.

  11. Haz clic en Ejecutar.

    El cliente que acabas de crear se devuelve junto con los demás clientes de la base de datos.

    Si vuelves a la sesión de Debug en la IU de Apigee, verás que el navegador envió automáticamente una solicitud OPTIONS (preliminar) antes de enviar ambos comandos. Se requiere una solicitud preliminar antes del comando GET, ya que el navegador no sabe si se debe permitir el encabezado apikey.

Tarea 8: Crea un desarrollador de apps en el portal (opcional)

En esta tarea, usarás el portal para desarrolladores y crearás un desarrollador de apps.

Nota: Para completar esta tarea, debes ingresar tu dirección de correo electrónico para recibir un correo electrónico de registro. El correo electrónico contiene un vínculo en el que se debe hacer clic para que la cuenta registrada pueda acceder al portal para desarrolladores. La dirección de correo electrónico no se usará para ningún otro propósito y se borrará cuando se elimine automáticamente el proyecto de Google Cloud.

Cómo registrar a un desarrollador de apps en el portal para desarrolladores

  1. Regresa al Live Portal y haz clic en Acceder.

  2. Haz clic en Create an account.

  3. Ingresa un nombre, un apellido, una dirección de correo electrónico y una contraseña.

    Deberás usar la contraseña para acceder al portal para desarrolladores, así que elige una que puedas recordar.

  4. Haz clic en la casilla que indica que aceptas las condiciones.

    La organización que proporciona las APIs a los desarrolladores de apps especificaría la página de Términos y Condiciones.

  5. Haz clic en Crear cuenta.

    Se enviará un correo electrónico a tu dirección. Incluye un vínculo en el que se debe hacer clic para permitir que acceda el usuario de la cuenta.

  6. Haz clic en el vínculo que se envió por correo electrónico.

    Se abrirá una pestaña del navegador en el portal para desarrolladores.

  7. Haz clic en Acceder.

  8. Ingresa la dirección de correo electrónico y la contraseña, y haz clic en Acceder.

Crea una app para el desarrollador de la app

  1. Haz clic en la dirección de correo electrónico en la esquina superior derecha y, luego, en Apps.

  2. Haz clic en + New App.

  3. Especifica MyApp como el Nombre de la app.

  4. En la sección APIs, haz clic en Habilitar para SimpleBank.

  5. Haz clic en Guardar.

    La app se registró y se muestra la clave de API. Esta última se puede usar en el portal para desarrolladores. Para ver el desarrollador y la app, vuelve a la IU de Apigee y navega a Publish > Developers y Publish > Apps respectivamente.

¡Felicitaciones!

En este lab, usaste la verificación de claves de API para restringir el acceso a la API. Creaste productos de API para proporcionar diferentes niveles de servicio a los desarrolladores de apps internos y externos. Usaste una política de cuotas para limitar la cantidad de llamadas de cada app y agregaste una política de CORS para admitir el uso compartido de recursos entre dominios en la API. Creaste un portal para desarrolladores y publicaste los productos de API para que los desarrolladores de apps los consuman.

Próximos pasos y más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 5 de agosto de 2025

Prueba más reciente del lab: 5 de agosto de 2025

Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.