Que es RESTful Web Service y que es REST

¿Quizá has escuchado estos términos?: Web service, Rest, RESTful web services, RESTful api y te preguntas cuales son las diferencias entre cada una. En este articulo responderé de la forma más clara las dudas que puedas tener sobre estos conceptos.

¿Que es un web service?

Primero definamos que es un web service, un web service es un programa, diseñado para el intercambio de información maquina a maquina, sobre una red. Entonces esto hace que una computadora o programa pueda solicitar y recibir información de otra computadora o programa. A quien solicita la información se le llama cliente y a quien envía la información se le llama servidor.

¿Que es API?

La palabra viene de Application Programming Interface, y no es más que un programa que permite que otros programas se comuniquen con un programa en especifico, por ejemplo Facebook. A diferencia de los web services, las API no necesariamente deben comunicarse entre una red, pueden usarse entre dos aplicaciones en una misma computadora.

¿REST vrs RESTful?

REST es una arquitectura para aplicaciones basadas en redes (como Internet), sus siglas significan REpresentational State Transfer y por otro lado RESTful web service o RESTful api, son programas basados en REST. Pero muchas veces se usan como sinónimos (REST y RESTful).

¿Que hace que un web service sea REST?

Usualmente los RESTful web service tienen estas características:

  • Esta asociados a información
  • Permiten listar, crear, leer, actualizar y borrar información
  • Para las operaciones anteriores necesitan una URL y un método HTTP para accederlas
  • Usualmente regresan la información en formato JSON.
  • Retornan códigos de respuesta HTML, por ejemplo 200, 201, 404, et

Los métodos HTTP que usan son los siguientes

Cuando solicitamos una pagina web, podemos hacer por diferentes métodos, el mas común es el GET, es el que usamos cuando digitamos una dirección en nuestro navegador, en ocasiones utilizamos POST, cuando enviamos un formulario con datos, pero las aplicaciones pueden usar otros métodos como PATHC, PUT, etc.

  • Listar y leer: Usan el método GET
  • Crear: Usan el método POST
  • Actualizar: Usan el método PATCH para actualizar y PUT para reemplazar.
  • Borrar: Usan el método DELETE

Algunos códigos de estado HTML

Cuando se recibe una pagina HTML, también se recibe un código de estado HTML (solo uno), en los web service RESTful, estos se usan para saber el estado de la ejecución del servicio, y estos son algunos de los usados:

  • 200 (Ok), cuando una operación fue exitosa.
  • 201 (Created), cuando se creo un registro (recuerdan? con el método POST)
  • 403 (Forbidden), cuando intentamos leer un registro para el que no tenemos acceso, por ejemplo los datos del perfil de otro usuario.
  • 404 (Not found), cuando intentamos leer un registro que no existe.

Conclusiones

  1. Para efectos prácticos REST y RESTful pueden entenderse como sinónimos aun que no lo son.
  2. La diferencia entre RESTful web service y RESTful api, es que el api no necesariamente se debe ejecutar en una red, puede ser en una misma computadora.

NOTA: Si quieres ver una forma de implementar servicios web usando RESTful, no te puedes perder este articulo, ahí muestro como crear un servicio usando solo PHP (sin frameworks)

 



Ir a la barra de herramientas