RAML (lenguaje)
RESTful API Modeling Language (RAML) es un lenguaje de modelado para definir APIs RESTful con una sintaxis sencilla y fácilmente comprensible tanto para los seres humanos como para sistemas software.[1] Básicamente es una especificación no propietaria y totalmente independiente basada en YAML y JSON, es decir, permite escribir la especificación de las APIs siguiendo un estándar. Proporciona toda la información necesaria para describir las API RESTful o prácticamente RESTful. Aunque está diseñado teniendo en cuenta las API RESTful, RAML es capaz de describir las API que no obedecen a todas las restricciones del REST (de ahí la descripción "prácticamente RESTful"). Fomenta la reutilización, permite el descubrimiento y el intercambio de patrones y tiene como objetivo el surgimiento de mejores prácticas basadas en el mérito.[2] La gran ventaja de implementar API con RAML es poder centrarse totalmente en el "contrato" que ofrece el endpoint; esto permite comenzar generando la documentación, para la cual, una vez esté lista, existen distintos generadores que crearán el "scaffolding" o esqueleto básico del servicio, e incluso servicios que devuelvan respuestas simuladas para empezar con las pruebas. Esta metodología favorece el proceso de testing aportando el entorno perfecto para usar TDD (Desarrollo guiado por pruebas). Básicamente, se define la API, se estiman tests para consumir esa API y se empieza a construir la implementación real y necesaria para validar tanto los test como la especificación descrita. HistoriaLa especificación RAML se propuso por primera vez en 2013 por Uri Sarid, Emiliano Lesende, Santiago Vacas y Damian Martinez. Además, obtuvo el apoyo de líderes tecnológicos como MuleSoft, AngularJS, Intuit, Box, PayPal, Programmable Web y API Web Science, Kin Lane, SOA Software y Cisco.[3] El desarrollo fue gestionado por el grupo de trabajo RAML. Los firmantes del grupo de trabajo actual incluyen los siguientes líderes tecnológicos:
RAML es una marca comercial de MuleSoft.[4] Muy pocas APIs existentes cumplen los criterios precisos para ser clasificadas como API RESTful. En consecuencia, como la mayoría de las iniciativas de API en la década de 2010, RAML se ha centrado inicialmente en los conceptos básicos de la APIs prácticamente RESTful, incluidos recursos, métodos, parámetros y cuerpos de respuesta que no necesitan ser hipermedia. Hay planes para avanzar hacia API RESTful más estrictas a medida que la evolución de la tecnología y el mercado lo permitan. En estos puntos se verá por qué RAML es interesante para la comunidad de API:[5]
Una nueva organización, bajo el patrocinio de la Fundación Linux, llamada OpenAPI Initiative se estableció en 2015 para estandarizar la descripción de las API RESTful. Varias empresas, incluidas SmartBear, Google, IBM y Microsoft, fueron miembros fundadores.[9][10] SmartBear donó la especificación Swagger al nuevo grupo. El grupo también está considerado RAML y API Blueprint.[11][12] Código de ejemploRAML permite el desarrollo rápido de una API utilizando una sintaxis accesible que puede escalar desde un pequeño proyecto hasta una aplicación empresarial. #%RAML 1.0
title: Mobile Order API
baseUri: http://localhost:8081/api
version: 1.0
uses:
assets: assets.lib.raml
annotationTypes:
monitoringInterval:
type: integer
/orders:
displayName: Orders
get:
is: [ assets.paging ]
(monitoringInterval): 30
description: Lists all orders of a specific user
queryParameters:
userId:
type: string
description: use to query all orders of a user
post:
/{orderId}:
get:
responses:
200:
body:
application/json:
type: assets.Order
application/xml:
type: !include schemas/order.xsd
Partes del código a destacar:
Puertas de enlace API que admiten RAMLAdemás, puede convertir su especificación RAML a OpenAPI o API Blueprint utilizando APIMATIC, lo que permite utilizar más puertas de enlace API. Véase también
Lenguajes alternativos de modelado RESTfulReferencias
Enlaces externos
|