Digital Developer Conference: Hybrid Cloud 2021 | Capacitaciones gratuitas por expertos y partners | 21 de Setiembre ¡Inscríbete Ahora!

Construcción de una API Administrada con IBM Cloud

Rápidamente, las API se están convirtiendo en uno de los activos más importantes de las organizaciones. Permitir que otros desarrolladores y organizaciones utilicen sus API a través de sus propias aplicaciones y servicios ofrece un sistema atractivo de innovación y monetización.

IBM API Management es un mecanismo poderoso para controlar el acceso de la API, gestionar varias versiones de una API, establecer límites de frecuencia y realizar el seguimiento de los análisis y métricas de rendimiento de cada API de su portfolio.El servicio API Management de IBM Cloud permite la compra y gestión de API por un punto único desde cualquier lugar. Este tutorial le muestra cómo crear una API, publicar la API en su organización de IBM Cloud y, finalmente, utilizar la API de un código de aplicación de muestra.

El video en la parte superior de la página muestra una visión general rápida de los Pasos 1 a 7, para que pueda tener una idea de cómo todo funciona antes de sumergirse.

Uno de los principios centrales de API Management es la habilidad de permitir que otras personas utilicen sus API. Emparejar API Management con IBM Cloud permite compartir las API de una organización de IBM Cloud a otra.

Qué necesita para construir su aplicación

NoneNone

Paso 1. Suministrar el servicio API Management

  1. En el catálogo, seleccione Integración desde la lista Categoría y haga clic en el mosaico API Management:

Screenshot of API Management selection from the IBM Cloud catalog

  1. Revise las opciones de planes en la página de información del servicio y seleccione un plan. (Al momento de escribir este artículo, está disponible un único plan Estándar). Haga clic en el botón CREAR para suministrar e iniciar el servicio API Management. Su primera parada es la página de guía de inicio:

Screenshot of the getting-started page

Puede revisar los documentos en cualquier momento, haciendo clic en APRENDA MÁS.

Paso 2. Crear su primera API

Puede utilizar el gestor de API para crear API desde cero o para importar una API existente basada en una definición de idioma de descripción de servicios web (WSDL) o Swagger. Para los efectos de este tutorial, usted importará la API de muestra Pet Store a través de swagger.io.

  1. En la página Introducción al API Management en IBM Cloud, haga clic en el enlace Importar API o componer una nueva para abrir el gestor de API en una nueva pestaña (lo que toma un tiempo).
  2. Haga clic en el botón azul +API y luego seleccione Importar Swagger.
  3. Puede cargar un documento Swagger o hacer referencia a uno a través de un URL. En el recuadro de diálogo Añadir API desde Definición Swagger, pegue el siguiente URL en el campo de URL de Swagger:

https://raw.githubusercontent.com/mhamann/apim-sample/master/petstore.json

Mantenga los campos de Nombre de Usuario y Contraseña en blanco y haga clic en Cargar.

  1. El gestor de API ahora muestra todas las API y recursos contenidos en el documento Swagger. Haga clic en Añadir para crear la API:

Screenshot of creating an API in API Manager

Se muestra la nueva API en la lista de API:

Screenshot of the newly created API in the API Manager list of APIs

  1. Haga clic en el título de API para abrir el editor de API, en donde podrá modificar varios atributos de API. Puede cambiar el nombre, la descripción y la ruta; añadir y eliminar recursos; y ajustar opciones como autenticación y autorización.
  2. Haga clic en la ruta API y cambie /v2 a /petstore.
  3. Haga clic en la pestaña Seguridad. En la opción Identificar Aplicación Con, seleccione ID de Cliente y Secreto de Cliente de la lista para proporcionar una mejor seguridad para su API.
  4. Haga clic en el botón Guardar API en la parte superior derecha.Cuando vea el mensaje API Guardada con Éxito, su API se habrá creado correctamente.

Paso 3. Crear un plan

Cada API debe formar parte de un plan antes de poder ser publicada y llamada. API Management utiliza planes para gestionar el acceso a recursos de API, establecer límites de frecuencia e implementar API en varios entornos (recinto de seguridad, prueba, producción, etc.). Un plan puede contener recursos de inúmeras API, de ese modo, permite el acceso a grupos de recursos a límites de frecuencia variables. En este paso, usted creará un nuevo plan, le añadirá sus recursos de API, establecerá límites de frecuencia y desplegará el plan. Más adelante en el tutorial, publicará su plan para utilizarlo en IBM Cloud.

  1. Abra la página Planes al hacer clic en el ícono de planes en el gestor de API o regrese a la página Introducción al API Management y seleccione la opción «crear un nuevo plan».

  2. En el gestor de API, haga clic en el botón + Plan. Ingrese un nombre para el plan y haga clic en Añadir.

  3. Ahora, podrá ver el nuevo plan en la lista de planes. Haga clic en el título del plan para abrir el editor de planes.
  4. Ahora, añadirá los recursos de la API Pet Store al plan. Haga clic en el botón + Recurso. Se muestra la lista de API a la izquierda y los recursos de API a la derecha. Si no está seleccionada, elija la API Swagger Petstore. Seleccione todos los recursos que forman parte de la API y haga clic en Añadir. Se muestran los recursos seleccionados en la parte inferior del editor de planes:

Screenshot of the selected resources for the Petstore API

  1. Establezca un límite de frecuencia para el plan, haciendo clic en el ícono de edición debajo de la sección Límite de frecuencia. Configure el límite de frecuencia a: 10.000 solicitudes por 1 Días, luego haga clic en Aplicar.

Screenshot of setting a rate limit

  1. Haga clic en Guardar en la esquina superior derecha de la página para confirmar los cambios en el plan:

Screenshot of clicking Save to deploy to the sandbox

  1. Está listo para desplegar el plan. Haga clic en el ícono Desplegar para mostrar el menú de despliegue. Espere hasta que aparezca la opción Recinto de seguridad, luego selecciónela. Luego de algunos instantes, debería ver una notificación de éxito:

Screenshit of the success notification

En este punto, el plan ha sido desplegado y está listo para compartirse con otros.

Paso 4. Invitar a otras personas a utilizar sus API (opcional)

Uno de los principios centrales de API Management es la habilidad de permitir que otras personas utilicen sus API. Emparejar API Management con IBM Cloud permite compartir las API de una organización de IBM Cloud a otra. Para compartir una API con otra organización, siga este paso, de lo contrario, puede ir directamente al Paso 5. Publicar API en IBM Cloud.

  1. Abra la página Desarrolladores al hacer clic en el ícono de desarrolladores

en el gestor de API o regrese a la página de introducción y seleccione la tercera actividad (Invitar otras organizaciones de IBM Cloud para compartir sus API).

  1. Haga clic en el botón + Organización de IBM Cloud para invitar a otro usuario de IBM Cloud a asociar la organización del usuario a la suya. La asociación sencillamente le permite compartir API con esa organización en el futuro.
  2. Ingrese la dirección de email de la persona con la cual desea compartir las API y haga clic en Invitar:

Screenshot of the email-address entry field for sharing the API

No se mostrará la nueva organización en la lista de organizaciones de desarrolladores hasta que el usuario invitado acepte la invitación enviada por email.

Paso 5. Publicar API en IBM Cloud

  1. Abra la página Gestión al hacer clic en el ícono de gestión

en el gestor de API o regrese a la página Introducción al API Management y seleccione la última actividad.

  1. En la lista de planes desplegados, haga clic en Pet Store – Plan Oro para expandir el plan y mostrar la lista de versiones desplegadas actualmente.
  2. Haga clic en el ícono

  3. Asegúrese de que Publicar esta versión esté seleccionado y haga clic en Siguiente.

  4. En la próxima página del asistente, asegúrese de que Seleccionar grupo de organizaciones y comunidades de desarrolladores esté seleccionado, luego, ingrese o seleccione IBM Cloud en el campo abajo. Si invitó a otra organización de IBM Cloud en el Paso 4, también puede ingresar el nombre de la organización aquí para hacer la API disponible para esa organización. (Nota: Si el campo de entrada no se muestra de inmediato, intente hacer clic en el círculo azul al lado de la opción Seleccionar grupo de organizaciones y comunidades de desarrolladores, incluso si ya está seleccionado).

Screenshot of the Public Plan dialog box

  1. Haga clic en Publicar.

Luego de algunos instantes, verá una notificación que indica que la publicación fue exitosa.

Paso 6. Vincular la API a una aplicación

Ha creado correctamente una API en el gestor de API y la publicó en IBM Cloud. Ahora, aparece en el catálogo de IBM Cloud de su organización. El último paso en el proceso es suministrar la API, vincularla a una aplicación y ver el flujo de datos. Usted creará una nueva aplicación de Node.js, suministrará y vinculará su API y, luego, ingresará algo de código a la aplicación para proporcionar un front end web sencillo a la API.

  1. Abra el panel de instrumentos de IBM Cloud y haga clic en CREAR UNA APLICACIÓN.
  2. Haga clic en WEB.
  3. Seleccione SDK para Node.js, luego haga clic en el botón CONTINUAR. Otórguele un nombre único a la aplicación y haga clic en FINALIZAR.
  4. Después de haber creado la aplicación, desplácese hasta el final de la página y haga clic en VER VISIÓN GENERAL DE LA APLICACIÓN para ir a la página de visión general de su nueva aplicación: Screenshot of the app overview page in IBM Cloud

  5. Haga clic en AÑADIR UN SERVICIO O API, que lo lleva al catálogo de IBM Cloud. Seleccione la categoría API Personalizadas y seleccione el mosaico Swagger Petstore:

Screenshot of adding a custom API Ahora puede ver los detalles de la API, incluyendo todos los recursos que ofrece, parámetros, respuestas de muestra, etc.: Screenshot of the API details

  1. Con la aplicación seleccionada, haga clic en el botón CREAR para suministrar la API y vincularla a la aplicación. Si se le solicita volver a implementar la aplicación, haga clic en VOLVER A IMPLEMENTAR. Swagger Petstore ahora está vinculada a la aplicación. Es hora de probarla y garantizar que funcione, ingresando algún código de muestra en su aplicación de IBM Cloud.

  2. Clone el código de aplicación de muestra a una carpeta en su computadora, al ejecutar git clone https://hub.jazz.net/git/integration/apimanagement-gettingstarted-sample desde su línea de comando de OS.

  3. Con un editor de texto, modifique el archivo manifest.yml en su proyecto clonado, al cambiar las propiedades de host y nombre para el nombre de la aplicación elegido anteriormente en este paso. Guarde el archivo.

  4. Al ejecutar la aplicación, esta buscará automáticamente las credenciales y URL necesarios para llamar a su API, porque la API está vinculada a la aplicación. Las líneas 27-32 de app.js demuestran cómo puede descubrir de manera fácil y confiable la información de su API:

var petstoreCreds = appEnv.getServiceCreds(/petstore/i) var apimUrl = url.parse(petstoreCreds.url); apimUrl.query = { 'client_id': petstoreCreds.client_id, 'client_secret': petstoreCreds.client_secret };

Cada vez que un visitante use la IU de la aplicación, el servidor de backend utilizará el URL y las credenciales de la API para llamar a la API y regresar la respuesta (líneas 44-53):

request.get({ url: url.format(requestUrl), json: true }, function(err, resp, body) { console.log(body); res.send({ pets: body, url: url.format(requestUrl) }); });
  1. Inicie sesión en la API de IBM Cloud, al ejecutar cf login -a https://api.ng.bluemix.net. Si se le solicita, especifique la organización y espacio en el cual creó la aplicación en el Paso 6.

  2. Desde su línea de comando de OS, cambie los directorios al directorio raíz en el cual clonó anteriormente el proyecto de IBM Cloud DevOps Services.

  3. Ejecute cf push desde la línea de comando.La aplicación será ingresada a IBM Cloud y deberá ver mensajes que indican que la aplicación se inició correctamente. (Este proceso puede tardar varios minutos).

  4. Luego de desplegar la aplicación, acceda a esta a través del URL https:// host_name.mybluemix.net/. Cuando la página se cargue, seleccione una opción y haga clic en el botón para consultar la API. Se devolverá una lista de artículos, junto al URL de la API llamado por el servidor de backend.

Paso 7. Probar la API directamente (opcional)

Puede utilizar Postman o una herramienta similar para probar la API directamente, a fin de ver la invocación a la API en crudo, incluyendo encabezados, parámetros, etc. Este paso demuestra esa opción. Debe obtener las credenciales de API y probarla.

  1. En el lado izquierdo del panel de instrumentos de la aplicación en IBM Cloud, haga clic en Variables de entorno:

Screenshot of selecting Environment Variables from the application dashboard

Se muestran las variables para VCAP_SERVICES, que incluyen los detalles de su API Swagger Petstore. El interés primordial es la sección de credenciales, que contiene el ID del cliente, el secreto del cliente y URL necesarios para llamar a la API, como en el ejemplo:

{ "Swagger Petstore v1 : Sandbox 55490fc20cf273432455d57b": [ { "name": "Swagger Petstore-kc", "label": "Swagger Petstore v1 : Sandbox 55490fc20cf273432455d57b", "plan": "Pet Store - Gold Plan : Sandbox", "credentials": { "client_id": "fa3dea8b-2a24-4b4f-a143-a5726bef7a41", "client_secret": "H0cK0kP4pO6lJ1xM7pG1bY6jB1eK1rP2fG7lO3cN2dT1qA1pK3", "url": "https://api.apim.ibmcloud.com/demoibmcom-dev/sb/petstore" } } ] }
  1. Abra la utilidad Postman o un equivalente (la siguiente captura de pantalla es de Postman). En el campo URL, ingrese su URL, sustituyendo las credenciales de su variable de entorno de las partes en cursiva:

credentials.url_ /pet/findByTags?tags=tag1&client_id= _credentials.client_id_ &client_secret= _credentials.client_secret

Screenshot of entering credentials in Postman

  1. Haga clic en Enviar para ejecutar la solicitud de API.Si todo ocurre con normalidad, el resultado debería ser similar a:
[{ "id": 4, "category": { "id": 1, "name": "Dogs" }, "name": "Dog 1", "photoUrls": [ "url1", "url2" ], "tags": [{ "id": 1, "name": "tag1" }] }]

Conclusión

Ha importado una API con éxito al servicio IBM Cloud API Management, la publicó en el catálogo de IBM Cloud de su organización y usó la API desde una aplicación de IBM Cloud. ¡Buen trabajo!

Las API administradas brindan una manera excelente y poderosa de controlar el acceso a recursos valiosos. A partir de aquí, puede añadir sus propias API a API Management y compartirlas con organizaciones de IBM Cloud específicas.