Hola a todos. En el post anterior nos quedamos con todo listo para empezar a crear nuestra API REST con el WSO2 API Manager. Repasemos un poco.
Tenemos una base de datos (PGSQL) con una tabla que guarda lo datos de nuestro catálogo de multimedia. Sobre esto, un servicio de datos en WSO2 DSS expuesto vía REST. Los datos se consumen en formato XML. Bien, ahora pasamos al API Manager.
Entramos en el APIM Publisher (Https://<servidor>:<puerto>/publisher) user y pass: admin, y tenemos una vista como esta:
Damos click en Add New API e iniciamos la creación de la misma.
En la próxima vista, tenemos 3 opciones de creación,
· Usando un API existente.
· Usando un endpoint SOAP. Y por supuesto.
· Diseñar un API nuevo. Que es la que usaremos en este ejemplo.
Damos click en la Design y luego en “Start Creating”. La siguiente página se divide en 2 secciones: Detalles generales y Definición del API. En los Detalles generales, como su nombre lo indica, definiremos los datos generales del api: Nombre, versión, contexto… entre otros, nótese que los datos obligatorios están resaltados con asterisco.
En este caso mi configuración queda así:
Seguimos para la sección de la definición de API. En esta sección definimos los recursos de las diferentes operaciones de nuestra API. Se definirá el nombre del recurso, el/los métodos por donde se exponen y otras configuraciones más que veremos enseguida.
Veremos en esta imagen que ya he creado un recurso para consultar el menú:
Se crea un recurso poniendo el patrón (/<recurso>) en el campo URL Pattern y seleccionando los métodos por donde se expondrá, luego le damos click en Add. Vamos a crear el recurso para obtener un único elemento según su id y que se exponga por GET.
Hacemos click en Add y pasamos a configurar el recurso que acabamos de crear haciendo click en la parte donde se especifica el método del recurso.
Aparecen más opciones de configuración las más importantes: Produces y Consume, las cuales especifican los formatos de entrada y salida de la operación, recuerden que en el post anterior, el servicio de datos devolvía el mensaje en formato xml, por lo tanto pondremos que estas operaciones consumen y producen formato application/xml, se especifica en los lugares señalados en la imagen anterior. Fijarse también que tomo por defecto el id como parámetro de la operación, eso es por lo especificamos en la url (/{<parámetro>}).
Damos click en “Next: Implement” para pasar a la 2da etapa: Implementación.
Aquí vemos 2 opciones, ocuparemos la primera: API gestionado.
Entramos en la opción y pasamos a configurar el tipo de Endpoint que se expone, y los endpoint de desarrollo y de producción.
Dejamos HTTP/REST como tipo de endpoint, y ponemos la dirección del servicio de datos (http://localhost:9764/services/mediaInfo_DataService?wsdl) en los campos de production y sandbox. Damos Test y veremos que nos sale una validación de que los endpoint están ok. Damos en Next y entramos en Gestión.
Este es casi el último paso, ahora pasamos a configurar algunas variables de gestión de nuestro api, como son la cantidad de solicitudes que pueden tener los usuarios, y cosas así. Lo configuramos como queda a continuación:
Luego vamos a Save & Publish y ya tenemos nuestro api publicado, debe salir un mensaje así:
Damos click en el botón señalado y llegamos al APIStore.
En el Store tenemos un resumen de nuestro API pero lo ke no interesa realmente está en el menú de la izquierda, ahí, vamos a Applications.
Y vamos directo a crear una aplicación, dando click en Add. Creamos una app para consumir nuestro api, le configuramos el nombre y la cuota para un token de seguridad (ya llegaremos ahí). En este caso dejamos unlimited en la cuota.
Luego click en Add. Con esto ya terminamos nuestra app, pero hay que generar las llaves de producción y desarrollo. Vamos a los tabs production key y sandbox key y damos en el botón generate keys. Queda algo asi:
Antes:
Después:
Y ya está. Ahora volvamos a nuestro api en el store, y suscribamos nuestra app al api.
Una vez hecho esto, podemos ir al API Console y ejecutar nuestras operaciones, vamos a ver como funciona…
En lo señalado podemos ver que app está invocando el api, que contexto (producción o desarrollo) se está invocando, y las operaciones expuestas.
Aquí vemos la invocación de menú.
Y este es getInfo, pasándole el id.
Bueno, y esto es todo. Espero que les sirva. Salu2 y hasta la próxima.