stringtranslate.com

Modelo de madurez de Richardson

El modelo de madurez de Richardson ( RMM ) es un modelo de madurez sugerido en 2008 por Leonard Richardson que clasifica las API web en función de su adherencia y conformidad con cada uno de los cuatro niveles del modelo. El objetivo de la investigación del modelo según lo declarado por el autor era descubrir la relación entre las restricciones de REST y otras formas de servicios web. [1]

Divide las partes principales del diseño RESTful en tres pasos: identificación de recursos ( URI ), verbos HTTP y controles de hipermedia (por ejemplo, hipervínculos ). [2]

El RMM ha sido citado como útil para evaluar la calidad de un diseño de API web particularmente RESTful (aunque no se limita solo a REST) ​​y criticado por no abordar cómo un sistema podría alcanzar los niveles más altos de madurez del modelo, así como por considerar una número limitado de atributos de calidad. [3]

Descripción general

El RMM se puede emplear para determinar qué tan bien una arquitectura de servicio web se adhiere a los principios REST. Clasifica una API web en cuatro niveles (de 0 a 3), y cada nivel superior corresponde a una adherencia más completa al diseño REST. El siguiente nivel también contiene todas las características del anterior. [4] [5]

También existen otros sistemas de clasificación para el diseño de servicios Web API, como CoHA y WS 3 . [3]

Niveles

Nivel 0: El pantano de la viruela

El nivel más bajo del modelo describe una API web con un único URI (normalmente POST sobre HTTP) que acepta toda la gama de operaciones admitidas por el servicio. Los recursos en esta forma no pueden estar bien definidos. La mensajería se realiza en XML, JSON u otros formatos de texto. Estos son RPC POX típicos y muchos servicios SOAP .

Los sistemas de nivel cero no se clasifican como RESTful .

Nivel 1: Recursos

Introduce recursos y permite solicitudes de URI individuales (todavía normalmente POST) para acciones separadas en lugar de exponer un punto final universal (API). Los recursos de la API aún están generalizados pero es posible identificar el alcance de cada uno.

El diseño de nivel uno no es RESTful, pero está organizando la API en la dirección de convertirse en uno.

Nivel 2: verbos HTTP

El sistema comienza a utilizar verbos HTTP . Esto permite una mayor especialización del recurso y, por lo tanto, reduce la funcionalidad de cada operación individual dentro del servicio. La separación principal en este nivel consiste en dividir un recurso determinado en dos: una solicitud para obtener solo datos (GET) y la otra para modificar los datos (POST). También es posible una mayor granularización. Las solicitudes GET solo obtienen datos, las llamadas POST/PUT introducen datos nuevos y actualizan los existentes, y las solicitudes DELETE eliminan o invalidan acciones anteriores. Un inconveniente de proporcionar un servicio distribuido con más de verbos GET y POST por recurso podría ser la creciente complejidad del uso de dicho sistema.

Nivel 3: controles hipermedia

El último nivel introduce la representación hipermedia. También llamados HATEOAS (Hypermedia As The Engine of Application State), estos son elementos integrados en los mensajes de respuesta de los recursos que pueden establecer una relación entre entidades de datos individuales devueltas y pasadas a las API. Por ejemplo, una solicitud GET a un sistema de reserva de hotel podría devolver una cantidad de habitaciones disponibles junto con enlaces hipermedia (estos serían controles de hipervínculos HTML en los primeros días del modelo) permitiendo al cliente reservar habitaciones específicas.

Este es el último nivel del modelo de madurez de Richardson.

Pedido:

OBTENER /habitación/?customerId=1&date=10-11-2020&hotelCode=ASTORIA HTTP/1.1

Respuesta:

{ ID de cliente: "1", reservas: [{habitación: "102", checkin: "11-10-2020", checkout: "14-11-2020", precio: "100", href: "https://localhost:8080/room/102 "}]}

Referencias

  1. ^ Richardson, Leonard (20 de noviembre de 2008). "La justicia nos llevará a millones de movimientos intrincados". www.crummy.com . Tercer acto: la heurística de la madurez . Consultado el 19 de mayo de 2021 . {{cite web}}: Enlace externo en |location=( ayuda )CS1 maint: location (link)
  2. ^ "Modelo de madurez de Richardson". martinfowler.com . Consultado el 10 de diciembre de 2020 .
  3. ^ ab Ivan Salvadori, Frank Siqueira (junio de 2015). "Un modelo de madurez para las API web RESTful semánticas". Researchgate.net . Consultado el 10 de diciembre de 2020 .
  4. ^ Hiranya Jayathilaka, Chandra Krintz y Rich Wolski. "Computación impulsada por servicios con API: desafíos y tendencias emergentes" (PDF) . Univ. de California en Santa Bárbara, EE. UU . Consultado el 11 de diciembre de 2020 .{{cite news}}: CS1 maint: multiple names: authors list (link)
  5. ^ Arne Koschel, Irina Astrova, Maximilian Blankschyn, Dominik Schöner y Kevin Schulze. "Evaluación del DESCANSO de las" API en bruto"" (PDF) . Actas de la 15.ª Conferencia Internacional sobre Tecnologías y Sistemas de Información Web (WEBIST 2019) . Consultado el 11 de diciembre de 2020 .{{cite news}}: CS1 maint: multiple names: authors list (link)