¿Qué son los servicios web?
Los servicios web (Web Services) son mecanismos que permiten que diferentes aplicaciones intercambien información a través de una red, independientemente del lenguaje de programación, sistema operativo o plataforma utilizados.
Su principal objetivo es facilitar la interoperabilidad entre sistemas mediante protocolos y formatos de datos estandarizados.
Conceptos fundamentales
Para comprender los servicios web es necesario conocer los siguientes conceptos:
- Cliente (Client): aplicación que realiza la petición.
- Servidor (Server): aplicación que ofrece el servicio.
- API: interfaz que define cómo acceder a un servicio.
- Endpoint: dirección URL donde está disponible el servicio.
- Solicitud (Request): petición enviada por el cliente.
- Respuesta (Response): información devuelta por el servidor.
Funcionamiento de un servicio web
La comunicación sigue un modelo cliente-servidor.
Cliente
↓
Petición HTTP
↓
Servidor
↓
Procesa la solicitud
↓
Respuesta
↓
Cliente
Generalmente:
- El cliente envía una petición.
- El servidor procesa la solicitud.
- El servidor devuelve una respuesta.
Características de los servicios web
Los servicios web presentan las siguientes características:
- Independientes de la plataforma.
- Comunicación mediante protocolos estándar.
- Facilitan la integración entre aplicaciones.
- Pueden intercambiar datos en diferentes formatos.
- Son reutilizables.
- Permiten arquitecturas distribuidas.
Arquitectura cliente-servidor
En un servicio web existen dos elementos principales.
Cliente
Es la aplicación que solicita un recurso o ejecuta una operación.
Ejemplos:
- Aplicación móvil.
- Página web.
- Aplicación de escritorio.
- Otro servidor.
Servidor
Es la aplicación que ofrece el servicio solicitado.
Puede acceder a:
- Bases de datos.
- Sistemas externos.
- Aplicaciones internas.
- Servicios de terceros.
Protocolos utilizados
Los servicios web utilizan diferentes protocolos de comunicación.
Los más habituales son:
- HTTP.
- HTTPS.
- SMTP (en determinados servicios).
- FTP (menos habitual).
Actualmente, HTTP y HTTPS son los protocolos predominantes.
Formatos de intercambio de datos
Los datos intercambiados deben utilizar un formato comprensible para ambas aplicaciones.
Los formatos más utilizados son:
| Formato | Características |
|---|---|
| JSON | Ligero, sencillo y ampliamente utilizado. |
| XML | Estructurado y muy utilizado en SOAP. |
| YAML | Utilizado principalmente en configuración. |
Tipos de servicios web
Existen dos grandes modelos.
SOAP
SOAP (Simple Object Access Protocol) es un protocolo basado en XML para el intercambio de mensajes.
Características:
- Utiliza XML.
- Muy estandarizado.
- Soporta WS-Security.
- Adecuado para entornos empresariales.
REST
REST (Representational State Transfer) es un estilo arquitectónico para diseñar servicios web.
Características:
- Utiliza HTTP.
- Generalmente emplea JSON.
- Es ligero.
- Fácil de implementar.
- Muy utilizado en aplicaciones web modernas.
Métodos HTTP más utilizados
Los servicios REST emplean principalmente los siguientes métodos HTTP.
| Método | Acción |
|---|---|
| GET | Obtener información. |
| POST | Crear un recurso. |
| PUT | Actualizar un recurso completo. |
| PATCH | Actualizar parcialmente un recurso. |
| DELETE | Eliminar un recurso. |
Códigos de estado HTTP
El servidor responde indicando el resultado de la operación mediante un código HTTP.
| Código | Significado |
|---|---|
| 200 | OK |
| 201 | Recurso creado |
| 204 | Sin contenido |
| 400 | Petición incorrecta |
| 401 | No autenticado |
| 403 | Acceso prohibido |
| 404 | Recurso no encontrado |
| 500 | Error interno del servidor |
Endpoint
Un endpoint es la dirección donde un servicio web ofrece una funcionalidad concreta.
Ejemplo:
https://api.ejemplo.com/usuarios
Sobre ese endpoint pueden realizarse distintas operaciones:
- GET → Obtener usuarios.
- POST → Crear usuario.
- PUT → Modificar usuario.
- DELETE → Eliminar usuario.
Seguridad en servicios web
Las comunicaciones deben protegerse para garantizar la confidencialidad e integridad de los datos.
Las medidas más habituales son:
- HTTPS (TLS).
- Autenticación.
- Autorización.
- Tokens (JWT, OAuth).
- Control de acceso.
Caso práctico
Situación
Una aplicación móvil necesita consultar el listado de productos de una tienda online.
Solución
El proceso sería el siguiente:
- La aplicación realiza una petición GET al endpoint
/productos. - El servidor consulta la base de datos.
- El servidor devuelve un listado en formato JSON.
- La aplicación muestra los productos al usuario.
App móvil
↓
GET /productos
↓
Servidor Web
↓
Base de datos
↓
JSON
↓
Aplicación
Comparación SOAP vs REST
| Característica | SOAP | REST |
|---|---|---|
| Tipo | Protocolo | Estilo arquitectónico |
| Formato habitual | XML | JSON |
| Complejidad | Alta | Baja |
| Rendimiento | Menor | Mayor |
| Flexibilidad | Menor | Mayor |
| Uso actual | Integración empresarial | APIs web modernas |
Ventajas e inconvenientes
Ventajas
- Integración entre aplicaciones.
- Independencia de la plataforma.
- Reutilización de funcionalidades.
- Escalabilidad.
- Comunicación estandarizada.
Inconvenientes
- Dependencia de la red.
- Posibles problemas de latencia.
- Necesidad de mecanismos de seguridad.
- Gestión de versiones de la API.
Errores habituales
- Confundir API con servicio web.
- Pensar que REST es un protocolo.
- Creer que SOAP utiliza JSON por defecto.
- Confundir un endpoint con una URL cualquiera.
- No diferenciar autenticación de autorización.
- Asociar HTTP únicamente con páginas web.
Cómo evitarlos
- Diferenciar REST y SOAP.
- Memorizar los métodos HTTP principales.
- Comprender qué es un endpoint.
- Relacionar cada código HTTP con su significado.
- Recordar que REST suele utilizar JSON y SOAP utiliza XML.
Relaciones con otros temas
Los servicios web están estrechamente relacionados con:
- HTTP y HTTPS.
- APIs.
- JSON.
- XML.
- REST.
- SOAP.
- Desarrollo web.
- Arquitectura cliente-servidor.
- Seguridad informática.
Conceptos clave para recordar
[!NOTE]
- Un servicio web permite la comunicación entre aplicaciones a través de una red.
- Su principal objetivo es la interoperabilidad entre sistemas.
- Los protocolos más utilizados son HTTP y HTTPS.
- Los formatos de datos más comunes son JSON y XML.
- SOAP es un protocolo basado en XML.
- REST es un estilo arquitectónico que normalmente utiliza HTTP y JSON.
- Los métodos HTTP principales son GET, POST, PUT, PATCH y DELETE.
- Un endpoint es la dirección donde un servicio ofrece una funcionalidad.
- Los códigos HTTP indican el resultado de una petición (200, 201, 404, 500, etc.).
- La seguridad de los servicios web suele basarse en HTTPS, autenticación y autorización.