CRUD y RESTful Apps

CRUD y RESTful Apps

  • 2015-04-09

Para entender el concepto de CRUD necesitamos antes comprender que es un recurso.

Un recurso es simplemente un modelo de información, el cual define un concepto (ej. persona) y está compuesto por diferentes atributos (nombre, apellido, dirección).

Ejemplos de recursos:

  • usuario (nombre, mail, password)
  • orden de compra (producto, precio, cantidad)
  • post (titulo, contenido)

CRUD es un acrónimo de “Create/Read/Update/Delete”. Esto significa que los Recursos pueden ser Creados, Leídos, Actualizados y Borrados.

Dicho de otra manera si se desarrolla una aplicación que implementa uno de estos recursos, dicho recurso persistirá ya que será almacenado en una base de datos. El recurso también podrá ser recuperado o leído, podrá ser modificado y vuelto a guardar o en su defecto podrá ser destruido.

El concepto CRUD va de la mano del concepto Representational State Transfer (REST). REST es un estilo arquitectónico de software utilizado para desarrollo de sistemas distribuidos como lo es la Word Wide Web. Consiste en una serie de reglas y buenas prácticas para desarrollar aplicaciones escalables. Este concepto trata la información como recursos de la misma manera que CRUD y contempla el uso de los cuatro métodos fundamentales de HTTP (GET, POST, PUT, DELETE) para elaborar dichas acciones.

La correspondencia entre las acciones de CRUD y los métodos de HTTP son las siguientes:

  • Create / POST
  • Read / GET
  • Update / PUT
  • Delete / DELETE

Normalmente dentro de una aplicación encontraras las siguientes vistas (páginas) para un recurso CRUD.

  • New - muestra una forma para crear nuevas instancias.
  • Show - muestra la información de una instancia en específico.
  • Edit - muestra una forma para cambiar los atributos de la instancia.
  • Index - enlista todas las instancias del recurso.

La acción de Borrar muchas veces aparece en la vista de Edit o en la de Show. Muchas aplicaciones no lo divide por vistas, pero de igual manera existen todas esas acciones disponibles en la aplicación.