RAML: la transformación digital llega a la definición de apis
Antes de entrar a revisar RAML, la primera pregunta que nos podemos hacer es, ¿qué es un lenguaje de definición de Apis? Un lenguaje de definición de Apis en un lenguaje que me permite definir un documento (normalmente en formato json o yaml) que permite especificar correctamente todos los aspectos a definir en una api (versión, recursos, métodos, ejemplos, esquemas, seguridad, parámetros de la url y del cuerpo del mensaje…). Así, podemos tener controlado todo en un documento que nos permitirá generar la documentación de la Api, generar casos de prueba, implementar un mock para poder acelerar el desarrollo, generar el esqueleto de nuestra aplicación…
RAML es un lenguaje de definición de Apis que implementa todas las funcionales anteriores. Por ejemplo, podremos definir los aspectos generales de la Api de la siguiente forma:
Y podremos definir un recurso de una forma fácil y sencilla como la siguiente:
Podéis descargaros el ejemplo aquí.
Además de lo potente que es, posee una serie de proyectos OpenSource que nos permitirá evolucionar y adaptar funcionalidades muy interesantes para cualquier organización, como tener su propio repositorio de documentos RAML. Como no podemos describir todos, vamos a detallar los que nos han parecido más interesantes:
- Api WorkBench: Es un IDE para diseñar, construir, testear, documentar y compartir RESTFull Apis.
- Api Designer: Es un IDE Web desarrollado en Javascript que permite desarrollar rápidamente la API.
- Api Console: Es una herramienta gráfica para una Api definida en RAML que expone visualmente la estructura de la Api y que sirve como documentación interactiva de la Api.
- RAML To HTML: Es una herramienta de documentación que genera HTML a partir del RAML. Está escrita en node.js y puede ser ejecutada en forma de consola.
- Osprey: Es un framework javascript que permite construir aplicaciones que exponen RAML Apis. Está construido en Node y Express.
- Swagger2raml: Es una utilidad para generar documentos RAML desde Swagger Swagger es otro de los lenguajes de definición de Apis más populares.
- Raml-server: Es un servidor que expone una implementación fake de la API sin tener que tirar una sola línea de código.
- RAML Java Parser: Es una implementación de referencia de parseador RAML en Java.
Puedes ver la lista completa de proyectos en este enlace.
¿Que futuro tiene RAML en comparación de OpenAPI 3.0 ?