Un WebService es una pieza de software identificada por un URI (Uniform Resource Identifier).
Su medio de comunicación se fundamenta en el uso de XML, TEXT, JSON
XML
XML Namespace, XML Schema, Xpath, XSLT.
HTTP, JSON
vortexbird
2. Que
es
un
WebService?
S Un
WebService
es
una
pieza
de
so9ware
iden;ficada
por
un
URI
(Uniform
Resource
Iden;fier).
S Su
medio
de
comunicación
se
fundamenta
en
el
uso
de
XML,
TEXT,
JSON
S XML
S XML
Namespace,
XML
Schema,
Xpath,
XSLT.
S HTTP,
JSON
4. Tradicional
C/S
vs.
Servicios
Web
Within enterprise
Tied to a set of
programming languages
Procedural
Usually bound to a
particular transport
Tightly-coupled
Efficient processing
(space/time)
Between enterprises
Program language
independent
Message-driven
Easily bound to different
transports
Loosely-coupled
Relatively not efficient
processing
Traditional C/S Web Service
5. Web
Applica>on
vs.
Web
Services
User-to-program
interaction
Static integration of
components
Monolithic service
Program-to-program
interaction
Possibility of dynamic
integration of
components (in the
future)
Possibility of service
aggregation (in the
future)
Web Application Web Service
7. Historia
S Transferencia
de
Estado
Representacional
(Representa;onal
State
Transfer)
o
REST
S Originado
en
el
año
2000
por
el
doctor
Roy
Fielding
en
la
Universidad
de
California
en
su
tesis
doctoral
S Tesis
“Es;los
de
Arquitectura
y
el
Diseño
de
Arquitecturas
de
So9ware
basadas
en
Redes”
S Principios
arquitectónicos
de
so9ware
para
usar
a
la
Web
como
una
plataforma
de
Procesamiento
Distribuido
8. Historia
S U;liza
XML
y
HTTP,
sin
las
abstracciones
adicionales
de
los
protocolos
basados
en
patrones
de
intercambio
de
mensajes
como
el
protocolo
de
servicios
web
SOAP.
S Se
hizo
popular
muchos
años
después
con
la
creación
de
varios
framework
que
hacen
fácil
el
desarrollo
de
servicios
RestFul
9. Historia
S Muchas
empresas
con
amplios
servicios
en
internet
están
migrando
sus
servicios
a
Rest.
S Amazon
S Facebook
S Yahoo
S Twiter
10. Los
4
principios
de
Rest
S U;liza
los
métodos
HTTP
de
manera
explícita
S No
man;ene
estado
S Expone
URIs
con
forma
de
directorios
S Transfiere
XML,
JavaScript
Object
Nota;on
(JSON),
o
ambos
11. Uso
de
métodos
HTTP
de
manera
explícita
S RestFul
usa
de
forma
explicita
los
métodos
HTTP
para
ejecutar
acciones
de
CRUD
Verbo
REST
Acción
POST
Create
GET
Read
PUT
Update
DELETE
Delete
12. No
man>ene
estado
S Basado
en
el
protocolo
HTTP
sin
estado.
S Servicios
mas
simples
de
diseñar,
escribir
y
reu;lizar.
S El
manejo
de
los
estados
debe
ser
hecho
por
el
cliente
de
los
servicios.
13. Expone
URIs
con
forma
de
directorios
S Las
URI
de
los
servicios
Rest
deben
ser
intui;vas.
S Se
deben
poder
deducir
de
forma
fácil.
S Las
URI
se
definen
como
una
estructura
de
carpetas
o
directorios.
14. Expone
URIs
con
forma
de
directorios
S Direcciones
de
un
blog
– hdp://www.vortexbird.org/discusion/temas/{tema}
– hdp://www.vortexbird.org/discusion/{año}/{mes}/{dia}/{tema}
– hdp://www.vortexbird.org/discusion/2008/12/23/javaEE
15. Expone
URIs
con
forma
de
directorios
S Buenas
prac;cas
para
crear
URIs
para
servicios
Rest
S Ocultar
la
tecnología
usada
en
el
servidor
que
aparecería
como
extensión
de
archivos
(.jsp,
.php,
.asp),
de
manera
de
poder
portar
la
solución
a
otra
tecnología
sin
cambiar
las
URI.
S Mantener
todo
el
uri
en
minúsculas.
S Sus;tuir
los
espacios
con
guiones
o
guiones
bajos
(uno
u
otro).
S Evitar
el
uso
de
strings
de
consulta.
S En
vez
de
usar
un
404
Not
Found
si
la
pe;ción
es
una
URI
parcial,
devolver
una
página
o
un
recurso
predeterminado
como
respuesta.
S URI
está;co
deforma
que
los
usuarios
puedan
crear
favoritos"
o
bookmarks.
18. Transfiere
XML,
JSON
o
ambos
S Tipos
MIME
más
usados
para
los
servicios
web
REST
son:
MIME-‐Type
Content-‐Type
JSON
applica;on/json
XML
applica;on/xml
XHTML
applica;on/xhtml+xml
TEXT
text/plain
20. Web
Applica>on
Descrip>on
Language
(WADL)
S Formato
XML
usado
para
la
descripción
de
aplicaciones
Web
basadas
en
HTTP.
S El
propósito
de
WADL
es
describir
los
servicios
Rest
o
cualquier
si;o
web.
S Cumple
un
papel
similar
a
WSDL
para
servicios
SOAP.
S Estándar
administrado
por
W3C.
24. Spring
MVC
S Spring
MVC
es
uno
de
los
módulos
del
framework
spring.
S Implementación
del
patrón
modelo
vista
control
S Cuenta
con
soporte
para
costruccion
de
servicios
REST
S Modular,
simple
de
usar
y
configurar.
S Es
basado
en
las
anotaciones
@Controller
y
@RequestMapping
25. Spring
MVC
S Basados
en
el
concepto
de
POJO
(Plain
Old
Java
Object)
S Clases
sin
extends
ni
implements
(Mar;n
Fowler)
S Término
heredado
de
C/C++:
Plain
Old
Data
(POD)
S Tiene
sen;do,
son
clases
de
datos
27. Anotaciones
Spring
MVC
Anotación
Descripción
@RequestMapping(method
=
RequestMethod.GET)
Marca
el
método
como
accesible
a
través
del
método
GET
de
HTTP
@RequestMapping(method
=
RequestMethod.POST)
Marca
el
método
como
accesible
a
través
del
método
POST
de
HTTP
@RequestMapping(method
=
RequestMethod.PUT)
Marca
el
método
como
accesible
a
través
del
método
PUT
de
HTTP
@RequestMapping(method
=
RequestMethod.DELETE)
Marca
el
método
como
accesible
a
través
del
método
DELETE
de
HTTP
@RequestMapping(method
=
RequestMethod.HEAD)
Marca
el
método
como
accesible
a
través
del
método
HEAD
de
HTTP
28. Anotaciones
Spring
MVC
Anotación
Descripción
@RequestMapping
Indica
donde
queda
alojada
la
clase
o
el
método.
Por
ejemplo
/holaMundo/
@PathVariable
Se
usa
para
asignar
a
los
parámetros
de
los
métodos
el
nombre
del
path
usado.
consumes="applica;on/
json"
Se
usa
para
iden;ficar
el
;po
de
mime
que
consume
el
método
u
operación
del
servicios.
Ejemplos
"applica;on/
xml",
"applica;on/json"
produce="applica;on/
json"
Se
usa
para
iden;ficar
el
;po
de
mime
que
produce
el
método
u
operación
del
servicios.
Ejemplos
"applica;on/
xml",
"applica;on/json“
29. Tipos
de
datos
soportados
Tipo
de
dato
Java
Mime
Type
byte[]
All
media
types
(*/*)
ava.lang.String
All
text
media
types
(text/*)
java.io.InputStream
All
media
types
(*/*)
java.io.Reader
All
media
types
(*/*)
java.io.File
All
media
types
(*/*)
javax.ac;va;on.DataSource
All
media
types
(*/*)
javax.xml.transform.Source
XML
media
types
(text/xml,
applica;on/xml,
and
applica;on/*+xml)
javax.xml.bind.JAXBElement
and
applica;on-‐
supplied
JAXB
classes
XML
media
types
(text/xml,
applica;on/xml,
and
applica;on/*+xml)
Mul;valuedMap<String,
String>
Form
content
(applica;on/x-‐www-‐form-‐
urlencoded)
StreamingOutput
All
media
types
(*/*),
MessageBodyWriter
only
37. Taller
desarrollo
de
servicios
Rest
S Servicio
Operaciones
Matemá;cas
S Sumar
S Restar
S Mul;plicar
S Dividir
S Cliente
del
servicio
Operaciones
Matema;cas
38. Taller
desarrollo
de
servicios
Rest
S Servicio
de
En;dad
para
Cliente
S Crear
S Modificar
S Borrar
S Consultar
por
ID
S Consultar
Todos
S Cliente
del
servicio
Rest