Herramientas para desarrollar APIs

Herramientas para desarrollar APIs

El mercado del desarrollo de estos últimos años está protagonizado por las APIs. Restlet Studio, Swagger, API Blueprint, RAML o Apiary son algunas de las plataformas y herramientas con las que los equipos de desarrolladores diseñan, desarrollan, prueban mediante simulacros automatizados y documentan APIs en todo el mundo.

BBVAOpen4U
|
30 Nov. 2017

El mercado del desarrollo de estos últimos años está protagonizado por una llave mágica que abre casi todas las puertas: las APIs. En BBVA API_Market hemos explicado cómo medir el rendimiento de las interfaces de desarrollo de aplicaciones, cuáles son sus ventajas, cómo un desarrollador puede organizar un gran repositorio, cuál es su influencia en el mundo del Internet de las cosas o los wearables, pero no cómo se puede programar una API desde cero.

Para ello existen plataformas, herramientas y también lenguajes que permiten a los equipos de desarrolladores diseñar, desarrollar, probar y documentar sus propias APIs para facilitar la programación de productos a terceros y generar ingresos. A día de hoy existen varios referentes importantes: Restlet Studio, Swagger, API Blueprint, RAML, Mockable.io, Loader.io, BlazeMeter, Apiary e InstantAPI. Existen más herramientas, pero estas serían las más conocidas dentro de la comunidad.

Aquí hay un análisis de las características de algunas de ellas:

Restlet: una Plataforma como Servicio para APIs

Restlet es un Entorno de Desarrollo Integrado (IDE) donde los programadores Java pueden diseñar sus web API basadas en arquitectura REST (REST APIs). Con él se pueden desarrollar tanto aplicaciones por el lado del servidor como del cliente y es compatible con HTTP, HTTPS, XML o JSON. Este marco de desarrollo es de código abierto, de descarga gratuita y bajo licencia Apache. La herramienta dispone de diferentes planes de uso escalables: uno gratuito y varios de pago. El primero permite el desarrollo de una API y el más caro no tiene limitaciones.

Restlet Studio está disponible para todas las plataformas (Java SE/EE, Google App Engine, Google Web Toolkit, OSGI o Android). Todas las APIs desarrolladas con Restlet Studio permiten su integración con APISpark, la Plataforma como Servicio (PaaS) de Restlet para alojar y gestionar APIs por todo tipo de desarrolladores, en todo tipo de lenguajes como Java, PHP, Node.js o HTML, y marcos como AngularJS… Jerome Louvel, CTO y fundador de Restlet, explicó en esta entrevista de noviembre de 2014 en InfoQ cuáles son las características fundamentales de APISpark

Dos aspectos destacados en el desarrollo de APIs con Restlet Studio:

● El marco de desarrollo de Restlet dispone de un conjunto de clases e interfaces a partir de las cuales se pueden diseñar APIs propias.

● Escalabilidad asegurada independientemente del número de solicitudes. 

Swagger: el framework de APIs más popular

A día de hoy, Swagger va ya por la versión 2.0, es de código abierto y da servicio a plataformas o clientes tan importantes como Apigee, Getty Images, Microsoft o Paypal. Gracias a Swagger, ellos han podido desarrollar su propias APIs RESTful. ¿Qué es Swagger? Un conjunto de herramientas para la programación de interfaces de desarrollo de aplicaciones en casi todos los lenguajes y entornos de desarrollo.

Entre las herramientas de Swagger destacan:

● Swagger Editor: permite editar las especificaciones de una API en YAML (acrónimo de YAML, Ain't Another Markup Language - YAML no es otro lenguaje de marcado). YAML es un lenguaje de marcado ligero, un formato de datos inspirado en lenguajes como XML o Python que pone un mayor énfasis en los datos y no tanto en el marcado de los documentos. Este es el comando para ejecutarlo localmente en una máquina con Node.js:

git clone https://github.com/swagger-api/swagger-editor.git
cd swagger-editor
npm install
npm start

● Swagger UI: colección de activos HTML, JavaScript y CSS para generar de forma dinámica tanto documentación como una sandbox para cualquier API compatible con Swagger. Al no tener ninguna dependencia específica, la interfaz de usuario se puede alojar en cualquier servidor o en local.

● Swagger Core: implementación en Java de Swagger. Un conjunto de librerías Java, de código abierto y disponibles en GitHub. Aquí hay una gran cantidad de documentación específica para desarrolladores.

API Blueprint: documentación para APIs

API Blueprint es un lenguaje basado en Markdown (un lenguaje de marcado ligero), que sirve fundamentalmente para documentar cualquier API de una forma sencilla. Lo realmente interesante de API Blueprint para los desarrolladores de APIs son las herramientas que funcionan de satélites de este lenguaje de marcado.

La más interesante es Dredd (en alusión al juez Dredd, personaje cinematográfico), que permite testear un servicio de backend a partir de la documentación de la API. Así es posible solucionar problemas de actualización de esa documentación. Soporta todo tipo de lenguajes como PHP, Python, Ruby, Perl, Node.js o Go.

Otra herramienta interesante integrada en Blueprint es Drakov, que permite poner en marcha servicios de mocks para hacer tests con peticiones y respuestas a medida de la documentación de la API. Lo que viene siendo un banco de pruebas. Este es un buen tutorial para empezar a trabajar con API Blueprint (en inglés).

RAML: gestión completa de APIs

RAML es el acrónimo de RESTful API Modeling Language (Lenguaje de Modelado de API RESTful). Su objetivo es facilitar la gestión del ciclo de vida de una API, desde el diseño y desarrollo hasta su utilización por terceros (testeo y documentación) poniendo el énfasis en el uso de un lenguaje fácil de interpretar por desarrolladores, y no sólo máquinas. La última versión de este lenguaje es la 1.0.

RAML permite el desarrollo de APIs en varias sintaxis: Node.js (JavaScript), Java, .NET y Python. Además, dispone de una gran variedad de herramientas para testear las interfaces de desarrollo de aplicaciones con RAML: Abao, una herramienta de línea de comandos en Node.js para probar la documentación de una API que esté escrita en RAML; Vigia; o Postman, una extensión de Google Chrome muy utilizada entre los desarrolladores por su enorme sencillez y que sirve para testear una API a través de peticiones, ya sean GET, POST, PUT, PATCH o DELETE. 

Apiary: una API propia en 30 minutos

Suena algo arriesgado, pero la plataforma Apiary promete a los equipos de desarrollo todas las herramientas necesarias para tener una API propia en 30 minutos. Se ocupa de todo el ciclo de vida de una interfaz de desarrollo de aplicaciones: diseño y desarrollo, simulacros automatizados, validaciones, proxies, documentación… Apiary proporciona todo lo necesario para tener una API.

Apiary proporciona a los equipos DevOps los servidores de mocks para hacer pruebas y simulacros antes de empezar a codificar una API, algo similar a los wireframes en una interfaz de usuario. Antes de diseñar, es bueno planificar para conocer las necesidades reales antes de destinar más recursos a desarrollo. 

Si eres desarrollador y estás interesado en APIs, ya puedes probar el sandbox de las APIs financieras de BBVA

¡Suscríbete!

Recibe nuestro boletín semanal. No te pierdas nuestros trucos, consejos, artículos y los eventos más innovadores.