Nuestras APIS publicadas en SAP Cloud API Management en 5 minutos
Introducción
Como seria el mundo de internet sin Google (o otros buscadores). Seguramente tendríamos excels o txt llenos de URL’s con nuestras direcciones de interés. Podríamos compartir estos listados con nuestros compañeros o crear un listín de pago con referencias.
¿Os imagináis internet así? Pues con este ejemplo os vengo a ilustrar como vuestro universo de APIs se puede descontrolar si no se utilizan herramientas para catalogar y definir puntos de entrada para obtener los datos que nuestras aplicaciones necesitan.

Una de estas herramientas es Swagger, que por si no la conoces, te dejo aquí su definición de wikipedia.
Swagger es un conjunto de herramientas de software de código abierto para diseñar, construir, documentar, y utilizar servicios web RESTful
Sobre esta base, hoy os presento una herramienta que seguramente ya conocéis y que os permitirá tener vuestras APIS documentadas y consultables para los desarrolladores.
Para no entrar en teorías tediosas os enseñare como añadir tres API Rest distintas (todas ellas con oData):
- Un servicio externo de SCP ( importando el metadata manualmente )
- Un servicio de nuestro sistema on-premise ( De manera semi-automática )
- Un servicio creado en CAPm en nuestra cuenta SCP ( de manera manual )
Entramos en materia…
API Management
Antes de empezar, una breve explicación de como acceder a este servicio.
Primero necesitamos activar el servicio. Este servicio antiguamente era un servicio de NEO aislado. En Cloud Foundry este servicio se incluye dentro del «Integration Suite», por lo que vamos a activar esta subscripción:

Una vez subscrita añadimos a nuestro usuario los roles (que aparecerán como nuevos en la parte de seguridad) y pulsamos sobre «Go to Application».
Al acceder, un wizard nos propondrá los servicios a activar, para este ejemplo con activar el servicio de «API Management» es suficiente.

Una vez activada, para acceder al servicio, si pulsamos sobre la pestaña «API Management» nos llevara a los datos de conenxion que necesitamos.

Un servicio externo de SCP ( importando el metadata manualmente )
Para este ejemplo utilizaremos el servicio de Northwind y lo añadiremos a nuestra API management para añadir alguna información extra: https://services.odata.org/V2/Northwind/Northwind.svc/
El servicio de Norwith no nos permite importar el catalogo de servicios, así que importaremos el metadata de manera manual de la siguiente manera:
- Creamos una nueva API provider apuntando al domini «service.odata.org». En el apartado de Catalog Service no hace falta informar nada.

- Lo siguiente sera crear la API con los datos que os muestro y pulsar «Crear»

Al pulsar a crear os aparecerá el siguiente error, pero no os preocupéis porque el problema es que no se ha podido recuperar el metadata (cosas del servidor).

- Cerramos el mensaje de error y guardamos la API con el boton «Save»
- Copiamos la definición del metadata del servicio, para ello accedemos a la URL del servicio y añadimos al final de la misma «/$metadata»
https://services.odata.org/V2/Northwind/Northwind.svc/$metadata
- Una vez copiado, volvemos a nuestra definición de API y pulsamos sobre «Edit» > «Edit in API Designer»

- Copiamos el metadata mediante «Paste» > «OData Metadata». Una vez copiado modificaremos el campo version ya que sino nos darà problemas al guardar.


- Ya podemos deployar nuestra API y utilizarla:

Un servicio de nuestro sistema on-premise ( De manera semi-automática )
Para este ejemplo utilizaremos el sistema «Gateway Demo System», si no tienes acceso a este sistema créalo fácilmente con este manual https://developers.sap.com/tutorials/gateway-demo-signup.html
En este caso, podemos extraer el catalogo de servicios, así que vamos a configurar esta extracción.
Como en el caso anterior, crearemos un «API provider» que apunte a nuestro sistema gateway. Esta configuración es estándar, por lo que te servirá para tu gateway también.
- Creamos una nueva API provider que apunte a la url del servidor Gateway. En un entorno real esta URL podria hacer referencia a la dirección virtual del cloud connector.

En este caso, añadiremos también la configuración de «Catalog Service Setting» y el usuario de conexión para obtener el catalogo. Una nota importante es que este usuario solo se utilizará para extraer el catalogo, en ningun caso se utilizará para conectarse al servicio por parte de nuestras aplicaciones.

Una vez el API Provider esta creado, vamos a crear nuestra API, mediante el alta de una nueva API:

Al pulsar sobre «Discover» tendremos la lista de servicios dados de alta en el gateway. Seleccionamos el que nos interesa publicar:

Automáticamente se nos rellenarán los datos para su publicación:

Únicamente nos queda pulsar al botón «Crear» y deployar la API:

Un servicio creado en CAPm en nuestra cuenta SCP ( de manera manual )
Para el último ejemplo utilizaremos un CAPm creado en SCP. Utilizaremos directamente el ejemplo que nos genera el BAS, la más que conocida «Bookshop»… Me ahorro los passos de crear y deployar un CAPm, por si tienes dudas, aquí va un manual:
Lo primero es seleccionar la URL de nuestro servicio, para ello, vamos a las aplicaciones desplegadas en nuestra subcuenta y espacio de SCP y obtenemos la application route de nuestro servicio:

Con la URL, crearemos un nuevo API provider con los siguientes parámetros:


Una vez creado el API provider y apodemos crear nuestra API. En este caso no tenemos catalogo de servicios ya que el CAP no lo provee, así que añadiremos directamente los datos para obtener la definición del servicio:

Pulsamos create y ya tendremos la API apunto:

Es importante tener las APIs documentadas para que los desarrolladores puedan consultar si ya existe una API que extraiga los datos que necesitan.
Como siempre suscribete, dale a la campanita de notificaciones y comparte en redes para estar a la última.
Muy claro y muy útil para no perderse en las innumerables APIs que nos va a tocar gestionar.
¡Gracias!
Como siempre, muy claro, ágil y practico. !Muchas gracias ¡
Pregunta: El Integrador que tiene SAP PO/PI, es lo mas standard o avanzado que tiene SAP ?, con TX Nativas ? Veo que este PI ya trae un AEEX, «Pila Unica en JAVA». Ya no viene con el lenguaje nativo ABAP. Me imagino que esto falicita mucho mas hacer interfaces. Ya que sabemos que aprox. el 70% de aplicativos informaticos se construye con JAVA.
Saludos,
Es muy importante usar este producto y API Hub ya que sino, acaba pasando com en abap, que hay 15000 funciones Z haciendo lo mismo