2012-05-15 6 views

Respuesta

15

No hay diferencia en absoluto. REST describe una forma de interactuar con un servidor HTTP, no lo que el servidor debería devolver en respuesta. La mayoría de las aplicaciones web interactúan con el lado del servidor mediante solicitudes POST o GET con cualquier información adicional necesaria para cumplir con la solicitud en un envío de formulario para POST o la cadena de consulta para GET. Por lo tanto, si desea eliminar algo del servidor, normalmente realizan un POST con un formulario que contiene datos que especifican un recurso junto con una instrucción para eliminarlo.

Sin embargo, HTTP implementa métodos (también conocidos como verbos) distintos de GET o POST. También implementa, entre otros, HEAD (devuelve los mismos encabezados que habrías hecho para un GET, pero sin cuerpo de respuesta), PUT (Toma el cuerpo de la solicitud y almacena su contenido en la URL en la que se haya realizado la solicitud PUT), y ELIMINAR (Elimine cualquier recurso que exista en la URL especificada). Una interfaz REST simplemente hace uso de estos verbos adicionales para convastar el significado de la solicitud al servidor.

Los navegadores generalmente solo son compatibles con GET y POST para solicitudes "normales" (no XHR), pero herramientas como Curl pueden emitir el conjunto completo de verbos HTTP. También puede usar verbos adicionales con técnicas basadas en XHR como AJAX.

Aún deberá proporcionar una API tradicional que no sea REST para que los navegadores la utilicen, a menos que haga que javascript y XHR sean un requisito para usar su aplicación.

+0

Hola, quiero hacer una API que sea consumida por appas de móviles y sitios web. ¿Cuál sería la mejor manera de hacer la API (REST o Non REST)? – Shaolin

7

REST principalmente se refiere a usar el protocolo HTTP de la manera en que fue diseñado. Use el método HTTP GET en una URL para recuperar información, posiblemente en diferentes formatos basados ​​en los encabezados HTTP Accept. Use el método HTTP POST para crear nuevos elementos en el servidor, PUT para editar los elementos existentes, DELETE para eliminarlos. Haga que la API sea idempotente, es decir, repetir la misma consulta con la misma información debería arrojar el mismo resultado. Estructure sus URL de forma jerárquica, etc.

REST solo es un principio rector de cómo usar las URL y el protocolo HTTP para estructurar una API. No dice nada sobre los formatos de retorno, que bien podría ser JSON.

Esto se opone, por ejemplo, a las API que envían mensajes binarios o XML a un puerto designado, sin utilizar diferencias en los métodos HTTP o URL en absoluto.