¿Que es RESTful Web Service? y ¿qué es REST?



¿Quizá has escuchado estos términos?: Web service, Rest, RESTful web services, RESTful api y te preguntas cuáles son las diferencias entre cada una. En este artículo 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 máquina a máquina, 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.

¿Qué 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 específico, 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 vs RESTful?

¿Qué es 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:

  • Están 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, etc

Los métodos HTTP que usan son los siguientes

Cuando solicitamos una página web, podemos hacerlo por diferentes métodos, el más 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 PATCH, 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 HTTP

Cuando se recibe una página HTML, también se recibe un código de estado HTTP (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 creó 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 aunque 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 artículo, en donde muestro como crear un servicio usando solo PHP (sin frameworks)


Como crear un servicio RESTful en PHP (VIDEO)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

5 Comments

  1. Avatar de Angel Yam

    Hola, me sirvió tu vídeo, fue muy claro y especifico.
    Solo tengo una duda en cuestión del método de actualizar, no comprendo como mandar los valores si solo tiene un arreglo $fields.
    Te agradecería si me pudieses aclarar ese punto, saludos.

  2. Avatar de Luis Alberto La Puente Carrasquel
    Luis Alberto La Puente Carrasquelsays:

    Hola, gracias por la información.
    Tengo una duda en cuestión del método de actualizar, no comprendo como mandar los valores si solo tiene un arreglo $fields.
    Te agradecería si me pudieses aclarar esa duda por favor, saludos.