Header Ads Widget

Ticker

6/recent/ticker-posts

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

 CRUD y REST, dos conceptos destacados en la industria de las API, a menudo se confunden. Mientras que REST es uno de los estilos de diseño más populares para API web (entre otras aplicaciones), CRUD es simplemente un acrónimo que se usa para referirse a cuatro operaciones básicas que se pueden realizar en aplicaciones de base de datos: Crear, Leer, Actualizar y Eliminar.

Como veremos en este artículo, existe cierta superposición entre CRUD y REST. Sin embargo, la confusión radica en el hecho de que no es tan extenso como muchos piensan ...

¿Qué es CRUD?

Crear, Leer, Actualizar y Eliminar (o CRUD ) son las cuatro funciones principales que se utilizan para interactuar con las aplicaciones de bases de datos. El acrónimo es popular entre los programadores, ya que proporciona un recordatorio rápido de las funciones de manipulación de datos que se necesitan para que una aplicación se sienta completa.

Muchos lenguajes de programación y protocolos tienen su propio equivalente de CRUD, a menudo con ligeras variaciones en cómo se nombran las funciones y qué hacen. Por ejemplo, SQL, un lenguaje popular para interactuar con bases de datos, llama a las cuatro funciones Insertar , Seleccionar , Actualizar y Eliminar . Con un pequeño empujón, CRUD también se asigna a los principales métodos HTTP, un tema al que volveremos más adelante.

Funciones

Aunque existen numerosas definiciones para cada una de las funciones CRUD, la idea básica es que logran lo siguiente en una colección de datos:

NOMBREDESCRIPCIÓNEQUIVALENTE DE SQL
CrearAgrega una o más entradas nuevasInsertar
LeerRecupera entradas que coinciden con ciertos criterios (si los hay)Seleccione
ActualizarCambia campos específicos en entradas existentesActualizar
EliminarElimina por completo una o más entradas existentesEliminar

¿Qué es el descanso?

Por otro lado, Representational State Transfer , o REST , es un estilo arquitectónico popular para software, especialmente API web. Está definido por cinco restricciones de diseño que, cuando se siguen, producen una aplicación con propiedades específicas , que incluyen rendimiento, simplicidad y confiabilidad.

Restricciones

Las cinco restricciones básicas que definen una aplicación REST son:

  1. Cliente-Servidor : El cliente y el servidor actúan de forma independiente.
  2. Sin estado : el servidor no registra el estado del cliente.
  3. En caché : el servidor marca si los datos se pueden almacenar en caché.
  4. Interfaz uniforme : el cliente y el servidor interactúan de manera uniforme y predecible. Un aspecto importante de esto es que el servidor expone recursos .
  5. Sistema en capas : la aplicación se comporta igual independientemente de los intermediarios entre el cliente y el servidor.

Está bien si no sabe qué significan todas estas limitaciones. Lo importante es que sepa que existen, para que pueda comprender la superposición entre CRUD y REST.

CRUD vs REST explicado

La confusión entre CRUD y REST se debe al hecho de que interactuar con aplicaciones REST a menudo implica el uso de funciones similares a CRUD. Esto se debe a que las aplicaciones REST se basan en recursos (como se describe en la restricción de Interfaz uniforme ), que se pueden crear, leer, actualizar y eliminar, al igual que las entradas en una colección de datos.

Profundicemos un poco más. La mayoría de las veces, cuando hablamos de REST, nos referimos a las API web que se adhieren a las restricciones de REST o API REST. Por la naturaleza de las API REST que se sirven a través de la web, estas API se comunican con los clientes mediante el protocolo HTTP, que tiene su propio conjunto de métodos para la manipulación de datos: GET, POST, DELETE, PUT y PATCH, entre otros. Y si lo piensa, claramente hay cierta superposición entre los métodos HTTP y las funciones CRUD:

CRUDHTTP
CREARPOST / PUT
LEEROBTENER
ACTUALIZARPUT / POST / PATCH
ELIMINARELIMINAR

De hecho, estos métodos y funciones son aproximadamente equivalentes, por lo que a menudo escuchamos sobre CRUD en el contexto de REST. Sin embargo, no se asignan exactamente uno a uno:

  • PUT reemplaza un recurso (incluso si ese recurso aún no existe), mientras que POST generalmente agrega un nuevo recurso. Ambos se pueden usar para crear nuevos recursos, pero PUT se usa principalmente para actualizar los recursos existentes.
  • PATCH se usa para actualizar parte de un recurso, mientras que PUT solo se usa para actualizar un recurso completo (reemplazándolo).
  • POST se procesa "de acuerdo con la semántica específica del recurso" (según el RFC), lo que lo convierte en una especie de comodín. Incluso puede tener la funcionalidad de actualización, como cuando se envía a un /updates/subrecurso.

Para algunos, sin embargo, el verdadero truco es que las API REST no se limitan a las funciones CRUD . Por ejemplo, una API REST aún puede permitir a los clientes reiniciar un servidor, aunque eso no equivale a ninguna de las cuatro funciones CRUD, siempre que implique el uso de métodos HTTP adecuados.

"Mientras el método se utilice de acuerdo con su propia definición, REST no tiene mucho que decir al respecto". Roy Fielding

Resumen

Crear, leer, actualizar y eliminar (CRUD) son las cuatro funciones principales para interactuar con aplicaciones de bases de datos. Las funciones CRUD a menudo juegan un papel en las API REST basadas en la web, donde se asignan (aunque de manera deficiente) a los métodos HTTP GET, POST, DELETE, PUT y PATCH. Es importante destacar que las API REST aún pueden exponer funciones que no corresponden a CRUD, siempre que utilicen el método HTTP adecuado.

Publicar un comentario

0 Comentarios