Un servicio web es una tecnología que utiliza un conjunto de protocolos y estándares para intercambiar datos entre aplicaciones.
Algo importante: lograr interoperabilidad.
Uso de estándares abiertos
XML-RPC, JSON-RPC
WSDL: Web Services Description Language
SOAP: Simple Object Access Protocol
¿Rest?
Servicios web
Ejemplo típico con WSDL y SOAP
¿Qué es REST?
REpresentational State Transfer: arquitectura de desarrollo web que se apoya totalmente en el estándar HTTP.
REST nos permite crear servicios y aplicaciones que pueden ser usadas por cualquier dispositivo o cliente que entienda HTTP, por lo que es más simple y convencional que otras alternativas que se han usado en los últimos diez años como SOAP y XML-RPC.
REST fue definido por Roy Fielding (coautor de la especificación HTTP) en el año 2000.
REST
Los sistemas que siguen los principios REST se los denomina también RESTful.
Se basa en HTTP para intercambiar información.
SIN estado.
Se piensa en los recursos como una entidad que puede ser accedido públicamente.
Cada objeto tiene su propia URL y puede ser fácilmente cacheado, copiado y guardado como marcador.
Recordemos que ....
Una petición HTTP consta de:
Una URL y un método de acceso (GET, POST, PUT,...).
Cabeceras. Meta-información de la petición.
Cuerpo del mensaje (opcional).
Métodos HTTP
GET: usado para solicitar un recurso al servidor.
PUT: usado para modificar un recurso existente en el servidor.
POST: usado para crear un nuevo recurso en el servidor.
DELETE: usado para eliminar un recurso en el servidor.
¿POST = GET + PUT + DELETE?
Por lo general, las peticiones de tipo PUT y DELETE son realizadas a través de peticiones POST.
La petición POST se utiliza tanto para crear, borrar o actualizar un recurso.
Pero hay una diferencia: POST NO es idempotente.
Métodos HTTP
Los métodos HTTP Seguros son aquellos que no modifican los recursos.
Los métodos HTTP Idempotentes son aquellos que pueden ser llamados múltiples veces y generarán el mismo resultado.