Servicios WEB:
Integración de
aplicaciones

Artech
Diciembre 2013
SOAP
REST
HTTP
Web Sevices
SOAP

• Basado en XML
• Modelo de comunicación HTTP
Web Services en GeneXus
• Proveer
• Procedimientos
• Call Protocol SOAP
• Business Components, DataProviders
• Expose as W...
Web Services en GeneXus

• Consumidor
• WSDL Import Wizard
http://wiki.gxtechnical.com/commwiki/servlet/hwikibyp
ageid?618...
Definición del consumidor de un Web Service

Objetos Externos
Paso 1: Indicar la URL del Web Service que se quiere utiliza...
Definición del consumidor de un Web Service

Objetos Externos
Paso 2: Indicar el nombre que se le dará al External Object,...
Definición del consumidor de un Web Service

Objetos Externos
Paso 3: Una vez descubierto el Web Service, presionamos Impo...
Definición del consumidor de un Web Service

Objetos Externos
Paso 4: Una vez importado el Web Service, vemos el objeto ex...
Definición del consumidor de un Web Service

Objetos Externos
Para conocer la estructura del WS, damos botón derecho sobre...
Definición del consumidor de un Web Service

Objetos Externos
Para consumir el WS definimos una variable basada en el tipo...
Web Services en GeneXus
Manejo de errores

http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7021
http://wiki.gxt...
Web Services
Locations

• Para permitir configurar invocaciones a objetos main GeneXus
en forma remota.
• Se pueden hacer ...
Ejemplo
&location= GetLocation('WebserviceDatatype')
&location.Host = Localhost
&location.Port = 8085
&location.CancelOnEr...
TroubleShooting
• Tcptrace

http://www.gxtechnical.com/gxdlsp/dist/iehelp.htm?genexus/inter
net/technicalpapers/debugcalls...
Rest
Por qué REST?
P
o • Optimización de tráfico
r

• Accesible a cualquier cliente HTTP

q
u
é
R
E
S
T
Qué es REST?
Q
u
• Exponer recursos en la web en un formato estándar: XML, Json..
é
E
s

R
E
S
T

….
JSON

XML
…Invocando un servicio REST
Q
u
é
E
s

R
E
S
T
RESTful Web Services
Q
u
é

• Sintáxis universal para identificar los recursos
(URI)
E
s

• Definición de una representaci...
Analogía CRUD
Q
u
é
E
s

Resource

POST

GET

PUT

DELETE

R
E
S
T

URI:
http://server/Product/
123

Create

Read

Update
...
R
E
S
T
e
n
G
E
N
E
X
U
S

REST a la luz de GeneXus
• Business Components
• Create (POST), Read (GET),
Update (PUT), Delet...
Consumir un servicio REST
• HTTPClient Data Type
• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6932

• Méto...
R
E
S
T
e
n
G
E
N
E
X
U
S

Lista de Entidades
R
E
S
T
e
n
G
E
N
E
X
U
S

• Lista de Entidades / Entidad por PK
R
E
S
T
e
n
G
E
N
E
X
U
S

Ejemplo: Exponer un
Recurso para modificación
R
E
S
T
E
n
G
E
N
E
X
U
S

Cliente de servicio REST
Json 2 SDT
• Tools – Application
Integration – Json Import
• http://wiki.gxtechnical.com
/commwiki/servlet/hwikiby
pageid?...
TroubleShooting
• Tcptrace
http://www.tcptrace.org/
• RestClient
https://code.google.com/p/rest-client/
HTTP
• Proveer
• Procedure : Call Protocol = HTTP
• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7947

• Con...
XML Schema Import
• Tools/Application
integration/XML schema
Import. (XSD)
• http://wiki.gxtechnical.com
/commwiki/servlet...
Upcoming SlideShare
Loading in...5
×

Web services GeneXus Tilo

3,064
-1

Published on

Web Services in GeneXus Tilo

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,064
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
71
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • SOA: aplicaciones basadas en servicios.Restful web services: http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?14573HTTP
  • REST es un estilo de diseño de webservices, y constituye una alternativa a SOAP.Un caso de uso de REST es aquel caso en donde la optimización de tráfico es esencial y parte de la solución. REST brinda la posibilidad de que la informacion sea cacheable, y accesible a cualquier cliente HTTP.
  • Lo quequeremoshaceresexponerdatos de unaaplicación o lo quevamos a llamar “recursos” o entidades, en la web, con unasalida con un formatoestándar, paraque sea interpretable por un programaqueejecutesobrecualquierplataforma o framework, e inclusosobrecualquiercliente HTTP genérico (inclusodesde un telefonocelular).
  • Vamos a suponer que lo que quiero es exponer la lista de productos de mi empresa, para que cualquier cliente HTTP pueda acceder a ella.Para invocarlo solo hago un GET al servicio (comopuedenver en la imagen, se trata del header del request HTTP)Luegopodemosver el response HTTP del servicio.Es solamente un HTTP Response, que trae en el cabezal el status code y demas datos, y en el cuerpo la lista de productos, en este caso en formato Json.El mensaje no lleva envelopes (como en el caso de SOAP).La respuestatiene el producId, la descripcion, y una URI queindicadondeobtener el detalle de cadaproducto. Esta URI sirvepara “descubrir” comolocalizarotrosrecursos.
  • REST es un estilo de arquitectura de software (no es como SOAP un protocolo), es un modelo orientado a recursos que va directo sobre HTTP.Cuando un webservice es Restful?Cuando se van a cumplir una serie de condiciones.Básicamente se va a cumplir que cada URL es la representación de un objeto, al que vamos a llamar recurso. Y cada recurso se representa con una única URI. Cada recurso se asocia a una URI, y cada recurso tienen n representaciones posibles, puede ser XML, Json. Además REST es un modelo cliente servidor sin estado. No se mantiene el estado en el servidor.El estado del recurso viaja en la representación. También en la representación se incluye la referencia a otros recursos relacionados, como vimos en la lista de productos, que estaba la referencia a cada producto en particular.También se caracteriza por tener una interfaz uniforme, es decir, un conjunto de operaciones bien definidas que voy a poder ejecutar sobre los recursos – métodos HTTP GET, POST, PUT, DELETE.
  • Con frecuencia estas operaciones se equiparan a las operaciones CRUD que se requieren para la persistencia de datos.Dado un recurso, un POST HTTP a su representación se puede equiparar con un create sobre la DB.Un GET HTTP se corresponde a un Read, un PUT HTTP sobre la representación se puede equiparar a un UPDATE sobre la DB, y un DELETE HTTP con un Delete sobre la DB.Bien, hasta aca hemos hablado de que es REST y que podemos resolver con REST.
  • En GeneXus tenemos la posibilidad de crear automáticamente servicios REST a partir de transacciones que sean Business Components, a partir de Data Providers y procedures.Es decir que el metodoCreate del BC podrá ser accedido mediante el método POST de HTTP, el metodoRead del BC a traves de un GET HTTP, el Update del BC a traves de un PUT HTTP, y el delete a traves del delete HTTP.Los data providers son servicios REST de lectura.http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?14573
  • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6932
  • Voy a empezar por exponer el recurso “lista de productos” como servicio REST.La manera de crear un servicio REST es muy sencilla, Mi transaccion debe ser Business Component, Y debo especificar la propiedad Expose as webservice – REST del Business Component.
  • Ws REST quepermite el ingreso de unaorden de compras.
  • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?22574
  • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7200
  • Web services GeneXus Tilo

    1. 1. Servicios WEB: Integración de aplicaciones Artech Diciembre 2013
    2. 2. SOAP REST HTTP
    3. 3. Web Sevices SOAP • Basado en XML • Modelo de comunicación HTTP
    4. 4. Web Services en GeneXus • Proveer • Procedimientos • Call Protocol SOAP • Business Components, DataProviders • Expose as Web Service • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypa geid?11231 • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypa geid?2282
    5. 5. Web Services en GeneXus • Consumidor • WSDL Import Wizard http://wiki.gxtechnical.com/commwiki/servlet/hwikibyp ageid?6181
    6. 6. Definición del consumidor de un Web Service Objetos Externos Paso 1: Indicar la URL del Web Service que se quiere utilizar.
    7. 7. Definición del consumidor de un Web Service Objetos Externos Paso 2: Indicar el nombre que se le dará al External Object, su descripción, carpeta de ubicación y prefijo.
    8. 8. Definición del consumidor de un Web Service Objetos Externos Paso 3: Una vez descubierto el Web Service, presionamos Import para importarlo.
    9. 9. Definición del consumidor de un Web Service Objetos Externos Paso 4: Una vez importado el Web Service, vemos el objeto externo y sus propiedades (View/Properties o F4 sobre el Objeto Externo).
    10. 10. Definición del consumidor de un Web Service Objetos Externos Para conocer la estructura del WS, damos botón derecho sobre el mismo y seleccionamos Open Part / Structure: Conocemos los parámetros
    11. 11. Definición del consumidor de un Web Service Objetos Externos Para consumir el WS definimos una variable basada en el tipo de dato CountryInfoService y luego invocamos al método CapitalCity:
    12. 12. Web Services en GeneXus Manejo de errores http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7021 http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7022
    13. 13. Web Services Locations • Para permitir configurar invocaciones a objetos main GeneXus en forma remota. • Se pueden hacer usando el tipo de datos Location de GeneXus o el archivo location.xml. • Instancias para configurar los locations: 1. 2. 3. En tiempo de generación: mediante location.xml En tiempo de ejecución mediante un archivo: location.xml En tiempo de ejecución mediante código: utilizando variables tipo Location • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6 981 • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6 111
    14. 14. Ejemplo &location= GetLocation('WebserviceDatatype') &location.Host = Localhost &location.Port = 8085 &location.CancelOnError=2 &location.Timeout=&timeout &outparam= &webservice.Method(&inparams) &SoapErr=GetSOAPErr() &SoapMsg=GetSOAPErrMsg()
    15. 15. TroubleShooting • Tcptrace http://www.gxtechnical.com/gxdlsp/dist/iehelp.htm?genexus/inter net/technicalpapers/debugcallsoap.htm • SoapUI http://www.soapui.org/
    16. 16. Rest
    17. 17. Por qué REST? P o • Optimización de tráfico r • Accesible a cualquier cliente HTTP q u é R E S T
    18. 18. Qué es REST? Q u • Exponer recursos en la web en un formato estándar: XML, Json.. é E s R E S T …. JSON XML
    19. 19. …Invocando un servicio REST Q u é E s R E S T
    20. 20. RESTful Web Services Q u é • Sintáxis universal para identificar los recursos (URI) E s • Definición de una representación del estado R • MIME TYPE: XML, Json.. E S T • Interfaz Uniforme(GET, POST, PUT, DELETE)
    21. 21. Analogía CRUD Q u é E s Resource POST GET PUT DELETE R E S T URI: http://server/Product/ 123 Create Read Update Delete
    22. 22. R E S T e n G E N E X U S REST a la luz de GeneXus • Business Components • Create (POST), Read (GET), Update (PUT), Delete (DELETE) • Data Providers • Read (GET) • Procedures • POST http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?14573
    23. 23. Consumir un servicio REST • HTTPClient Data Type • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6932 • Método ToJson / FromJson • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?10670 • Método ToXML / FromXML • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?8789 • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?8788
    24. 24. R E S T e n G E N E X U S Lista de Entidades
    25. 25. R E S T e n G E N E X U S • Lista de Entidades / Entidad por PK
    26. 26. R E S T e n G E N E X U S Ejemplo: Exponer un Recurso para modificación
    27. 27. R E S T E n G E N E X U S Cliente de servicio REST
    28. 28. Json 2 SDT • Tools – Application Integration – Json Import • http://wiki.gxtechnical.com /commwiki/servlet/hwikiby pageid?22574
    29. 29. TroubleShooting • Tcptrace http://www.tcptrace.org/ • RestClient https://code.google.com/p/rest-client/
    30. 30. HTTP • Proveer • Procedure : Call Protocol = HTTP • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7947 • Consumir • HttpClient, HttpRequest, HttpResponse data type. • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6932
    31. 31. XML Schema Import • Tools/Application integration/XML schema Import. (XSD) • http://wiki.gxtechnical.com /commwiki/servlet/hwikiby pageid?7200
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×