Este documento describe cómo implementar servicios RESTful utilizando Spring MVC. Explica los principios básicos de REST y por qué es útil, y luego detalla cómo configurar Spring MVC para admitir REST, incluyendo la configuración de web.xml, context.xml y pom.xml. También cubre el uso de anotaciones como @PathVariable, @RequestBody y @ResponseBody para controladores REST en Spring MVC.
3. ¿Por qué REST?
REST(CATE)
WSDL UDDI Representational State Transfer
Roy Fielding , 2000
SOAP
• Verbose • Sencillez
Técnica de arquitectura software para
• Complejidad • Eficiencia
sistemas hipermedia distribuidos
como la Word Wide Web
• Alta curva de aprendizaje • Aprovecha características
• Dificil de mantener de la infraestructura Web
• Alto consumo de recursos
• No optimizado para web
4. Principios REST
• Protocolo cliente/servidor sin estado
Cada mensaje HTTP contiene toda la información necesaria
para comprender la petición. Ni cliente ni servidor
necesitan recordar ningún estado.
• Operaciones bien definidas
HTTP en sí define un conjunto de operaciones: POST, GET,
PUT y DELETE.
• Sintaxis universal
Cada recurso es direccionable únicamente a través de su
URI.
• Soporte multiformato
HTML, XML, etc.
5. ¿Cuándo usamos REST?
Servicio Web sin estado Requerimientos
Productor y consumidor complejos no funcionales:
conocen el contexto y Transacciones
contenido Información contextual
Ancho de banda Estado
importante y necesita ser Contrato formal con
limitado funcionalidad de la
Distribución de Servicios interfaz (WSDL)
Web o agregación de Procesado asíncrono
sitios Web existentes
13. Diseño de la interfaz
TVShow
• Identificar entidades • id
•name
• genre
conceptuales • year
• rates
• Crear una URI para cada recurso (nombres, no verbos)
https://www.myrest.com/tvshowrest/provider/tvshow/{id}
• Definir que métodos son soportados por cada URI
GET, PUT y DELETE
• Formato de cada recurso
XML