Un servicio REST (a veces también llamado "servicio web") sirve como protocolo de intercambio de información entre nodos.
Es un "componente" que define un contrato que incluye qué cosas yo puedo pedirle, qué parámetros espera recibir en cada uno de esos "métodos", qué va a retornar, y en qué forma. Bastante genérico, ¿no?
Parecido a un objeto. Peeeero, todo eso dentro del marco web, es decir sobre el protocolo HTTP.
Entonces:
En particular, nosotros vamos a utilizar esta idea, porque nuestro "lado servidor" va a ser un webservice. Y esto nos permite independizar las tecnologías que están de cada lado
Para hacer pruebas a diferentes servidores que ofrecen servicios REST te recomendamos que instales alguna de estas aplicaciones
En http://jsonplaceholder.typicode.com/ tenemos varios ejemplos para obtener información de prueba. El primer ejemplo sería recuperar la lista de usuarios de una posible aplicación, eso se consigue de esta manera:
GET /users HTTP/1.1 Host: http://jsonplaceholder.typicode.com
Esto forma la URI http://jsonplaceholder.typicode.com/users, que nos da la siguiente respuesta:
[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
},
Para ver la representación de una entidad, por ejemplo un usuario, la URI suele incluir un identificador unívoco de ese elemento en el server:
http://jsonplaceholder.typicode.com/users/2
donde
Para crear un recurso nuevo, debemos pasar su representación JSON o XML al server, utilizando algún framework de la tecnología que utilicemos que nos permita subir el grado de abstracción de nuestros problemas, o bien algún programa que cumpla la funcionalidad de cliente que hace pedidos http, como los clientes que mencionamos en el primer punto o bien curl.
Ejemplo:
curl -X PUT -H 'Content-Type: application/json' -d '{"firstName":"Kris", "lastName":"Jordan"}' servidor.rest.com
Las aplicaciones que respetan estas definiciones se llaman REST-ful.
Más adelante veremos cómo pasar parámetros vía PUT o POST en una herramienta más amigable.