Qué es REST
9 de Mayo de 2008 por Jordi RomeroREST (REpresentational State Transfer) es una arquitectura para aplicaciones que se comunican a través del protocolo HTTP.
Verbos HTTP
Típicamente, se conocen del protocolo HTTP dos verbos: GET y POST. GET es el que se utiliza para pedir un contenido a un servidor web. Por ejemplo: GET http://jrom.net/ nos mandará el contenido de la URL pedida. También podemos añadir parámetros usando el verbo GET: GET http://jrom.net/?s=rails, en este caso, el servidor recibe que queremos la URL http://jrom.net/ pero con la variable s=rails.
El otro verbo conocido es POST. Normalmente se utiliza en los formularios mandan datos al servidor.
Sin embargo, hay más verbos HTTP que normalmente no se usan. Para poder usar una arquitectura REST, necesitaremos usar (además de GET y POST) los verbos PUT y DELETE. Estos ni siquiera son soportados por los navegadores corrientes, por lo que hay que simular que usamos esos verbos al hacer un enlace para un navegador, aunque sí que puede usar cuándo se nos use como webservice.
REST - CRUD
REST se puede ver cómo un sistema CRUD (Crear, leer, actualizar y eliminar) proyectado al protocolo HTTP. Podemos usar un verbo HTTP por cada acción CRUD:
- GET: Read, mostrar un objeto
- DELETE: Delete, eliminar un objeto
- PUT: Update, actualizar un objeto
- POST: Create, crear un objeto
GET http://localhost/proyectos/428→ Obtiene el proyecto 428DELETE http://localhost/proyectos/428→ Elimina el proyecto 428PUT http://localhost/proyectos/428→ Modifica el proyecto 428POST http://localhost/proyectos→ Crea un proyecto con ID 428 (no podemos pasar el ID porque esto nos lo devolverá el servidor después de crear el proyecto)
El dilema
La conclusión
_method, a la que le dan valor put o delete para simular llamadas PUT y DELETE del cliente.