REST vs CRUD: Explicación de REST y Operaciones CRUD

REST vs CRUD: Explicación de REST y Operaciones CRUD

  • ITOps y DevOps
6 min de lectura Actualizado May 13, 2018

Puntos clave: REST están un estilo arquitectónico para APIs que gestiona recursos mediante HTTP, mientras que CRUD abarca operaciones básicas de bases de datos. Los principios de REST se centran en la ausencia de estado y en interfaces uniformes, ofreciendo un marco robusto para el desarrollo de aplicaciones más allá de las limitaciones de las bases de datos de CRUD.

  • REST enfatiza la representación de recursos y las relaciones hipermedia.
  • CRUD está principalmente sobre mantener registros en bases de datos.

Parte de la confusión entre REST y CRUD tiene que ver con la superposición de comandos básicos exigidos por ambos procesos. Esto se está amplificado aún más por la comunidad de Rails que abraza REST y su naturaleza Obtén, PUT, POST. Los desarrolladores astutos pueden Ve evidentes similitudes entre Obtén, PUT, POST y Crea, READ, UPDATE, DELETE. Estos últimos comandos son la base de CRUD. Y aunque las similitudes no pueden ignorarse, hay que señalar que REST no están simplemente una copia exacta de CRUD.

RESTO: Fundación y principios

Cada comando REST están centrado en un recurso. En REST, un recurso están realmente cualquier cosa a la que se pueda apuntar mediante protocolo HTTP. Por ejemplo, una imagen, un sitio web, un documento o un servicio meteorológico. Las posibilidades son casi infinitas. En términos sencillos, REST significa Transferencia de Estado Representacional, un estilo arquitectónico diseñado para hipermedia distribuida, o una Interfaz de Programación de Aplicaciones. Probablemente te oído a esta última referirse como API. Otra forma de pensar en una API están Define como un servicio web que cumple con los principios arquitectónicos de REST. Cada API están llamada mediante un método estándar de solicitud HTTP: POST, Obtén, PUT y, menos comúnmente, DELETE. DELETE suele están implícito, aunque no necesariamente declarado. Los términos que Define los principios de REST fueron introducidos en la tesis del Dr. Roy Fieldings, "Estilos arquitectónicos y el diseño de infraestructura de software basada en red." En general, REST puede considerarse el estándar en el desarrollo de aplicaciones de servicios. Ofrece una alternativa a:

  • Protocolo de Acceso a Objetos Simples (SOAP)
  • Arquitectura Común de Intermediarios de Solicitudes de Objetos (CORBA)
  • RMI
  • Muchos otros

Principios de REST

Son seis restricciones rectoras de REST:

  • Mandata cliente-servidor
  • Apatridia
  • Caché
  • Contrato de interfaz/uniforme
  • Sistema en capas
  • Código bajo demanda (opcional)

Veamos cada uno.

Mandato cliente-servidor

Este mandato subraya que REST es un enfoque distribuido debido a la naturaleza de separación entre cliente y servidor. Cada servicio tiene múltiples capacidades y escucha las solicitudes. Las peticiones son realizadas por un consumidor y aceptadas o rechazadas por el servidor.

Apatridia

Debido a la naturaleza de la ausencia de estado, está un principio rector de la arquitectura RESTful. Establece qué tipo de comandos pueden ofrecerse entre cliente y servidor. Implementar solicitudes sin estado significa que la comunicación entre el consumidor y el servicio está iniciada por la solicitud, y la solicitud contiene toda la información necesaria para que el servidor responda.

Caché

La caché exige que las respuestas del servidor se etiqueten como almacenables en caché o no. La caché ayuda a mitigar algunas de las restricciones de la falta de estado. Por ejemplo, una solicitud que es almacenada en caché por el consumidor para evitar volver a enviar la misma solicitud dos veces.

Contrato de interfaz/uniforme

La arquitectura RESTful sigue los principios que Define un Contrato Uniforme. Esto prohíbe la utiliza de múltiples interfaces autónomas dentro de una API. En su lugar, una interfaz están distribuida por conexiones hipermedia.

Sistema en capas

Este principio están el que hace que la arquitectura RESTful sea tan escalable. En un sistema en capas, se son utilizadas múltiples capas para hacer crecer y expandir la interfaz. Ninguna de las capas puede Ve en la otra. Esto permite añadir nuevos comandos y middleware sin afectar a los comandos originales y funcionando entre cliente y servidor.

Opcional: Código bajo demanda

Las aplicaciones RESTful no tienen por qué incluir Código bajo demanda, pero sí deben tener Cliente-Servidor, Sistemas sin Estado, Caché, Contrato Uniforme y Sistemas en Capas. El Código bajo demanda permite que la lógica dentro de los clientes sea independiente de la de los servidores. Esto permite actualizarlas de forma independiente de la lógica del servidor.

REST en pocas palabras

REST se refiere a un conjunto de principios definitorios para el desarrollo de APIs. Utiliza protocolos HTTP como Obtén, PUT y POST para vincular recursos a acciones dentro de una relación cliente-servidor. Además del mandato cliente-servidor, tiene varias otras restricciones definitorias. Los principios de la arquitectura RESTful sirven para Crear una aplicación estable y fiable que ofrece simplicidad y satisfacción del usuario final.

CRUD: Fundación y principios

Con un mejor entendimiento de la arquitectura RESTful, es hora de sumergirse en CRUD. CRUD están un acrónimo para:

  • Crea
  • LEE
  • ACTUALIZACIÓN
  • BORRAR

Estos forman los comandos estándar de base de datos que son la base de CRUD. Muchos desarrolladores de software ven estos comandos como, en el mejor de los casos, una guía primitiva. Esto se debe a que CRUD no se desarrolló como una forma moderna de Crea API. De hecho, los orígenes de CRUD son en los registros de bases de datos. Por definición, CRUD es más un ciclo que un sistema arquitectónico. En cualquier sitio web dinámico, probablemente son múltiples ciclos CRUD. Por ejemplo, un comprador en un sitio de comercio electrónico puede Crear una cuenta, ACTUALIZAR la información de su cuenta y ELIMINAR cosas de un carrito de la compra. Un Gerente de Operaciones de Almacén que utilice el mismo sitio puede Crear registros de envío, RECUPERARLOS según sea necesario y ACTUALIZAR listas de suministros. A veces Retrieve están sustituidos por READ en el ciclo CRUD.

Orígenes de la base de datos

El ciclo CRUD está diseñado como un método de funciones para mejorar el almacenamiento persistente—por ejemplo, con una base de datos de registros. Como su nombre indica, el almacenamiento persistente sobrevive a los procesos que lo crearon. Estas funciones encarnan todas las características de una aplicación de base de datos relacional. En el desarrollo moderno de software, CRUD ha trascendido sus orígenes como funciones fundamentales de una base de datos y ahora se asigna a principios de diseño para aplicaciones dinámicas como el protocolo HTTP, DDS y SQL.

Principios de CRUD

Como se mencionó antes, los principios del ciclo CRUD son definidos como Crea, LEER/RECUPERAR, ACTUALIZAR y ELIMINAR:

  • Los procedimientos Crea generan nuevos registros mediante estados INSERT.
  • Los procedimientos READ leen los datos basándose en parámetros de entrada. De manera similar, los procedimientos RETRIEVE graban registros basados en parámetros de entrada.
  • Los procedimientos UPDATE modifican los registros sin sobrescribirlos.
  • Procedimientos DELETE eliminado donde se especifice.

Similitudes entre REST y CRUD

Si te fijas en las dos como hemos descrito arriba, puede ser difícil entender por qué a menudo son tratadas de la misma manera:

  • REST están una arquitectura API robusta.
  • CRUD están un ciclo para mantener los registros actualizados y permanentes.

La falta de claridad entre ambos se están perdida para muchos cuando no logran determinar cuándo termina CRUD y comienza REST. Mencionamos anteriormente que CRUD puede mapearse a protocolos DDS, SQL y HTTP. Y que los protocolos HTTP son el vínculo entre recursos en la arquitectura RESTful, una pieza fundamental de la base de REST. Mapear principios CRUD a REST significa entender que Obtén, PUT, POST y Crea, READ, UPDATE, DELETE tienen similitudes sorprendentes porque el primer agrupamiento aplica los principios del segundo. Sin embargo, también es importante señalar que una pieza de arquitectura de software RESTful significa más que mapear comandos Obtén, PUT y POST.

REST vs CRUD: ¿cuál es la diferencia?

CRUD es un ciclo que puede mapearse a REST, por diseño. La permanencia, tal como se define en el contexto de CRUD, es una forma inteligente para que las aplicaciones mitiguen comandos operativos entre clientes y servicios. Pero REST rige mucho más que la permanencia dentro de sus principios arquitectónicos. Aquí son algunas de las formas en que REST no solo están diferentes de CRUD, sino que también ofrecen mucho más:

  • REST es un sistema arquitectónico centrado en recursos e hipermedia, mediante protocolos HTTP
  • CRUD están un ciclo diseñado para mantener registros permanentes en una base de datos
  • Los principios CRUD son asignados a los comandos REST para cumplir con los objetivos de la arquitectura RESTful

En RESTO:

  • Las representaciones deben ser uniformes en cuanto a los recursos
  • La hipermedia representa las relaciones entre recursos
  • Solo una entrada en una API para Crea una interfaz autónoma, y luego enlazar para Crea relaciones

El camino a seguir

Descanso vs Suciedad

No es de extrañar que la demanda de arquitectura RESTful haya seguido creciendo a lo largo de los años. Y, a medida que se convierte en un estilo arquitectónico aún más popular, los promotores deberían poder Haz los principios de otras opciones como SOAP, CORBA y RMI.

Recursos adicionales

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de ITOps y DevOps

Suscríbete al Informe

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Gracias te

Tú te has suscrito a The Brief
El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.