Web services GeneXus Tilo
description
Transcript of Web services GeneXus Tilo
Servicios WEB: Integración de aplicaciones
Diciembre 2013
Artech
SOAP
REST
HTTP
Web SevicesSOAP
• Basado en XML• Modelo de comunicación HTTP
Web Services en GeneXus
• Proveer• Procedimientos
• Call Protocol SOAP• Business Components, DataProviders
• Expose as Web Service• http://
wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?11231
• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?2282
Web Services en GeneXus
• Consumidor• WSDL Import Wizardhttp://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6181
Definición del consumidor de un Web Service
Objetos Externos
Paso 1: Indicar la URL del Web Service que se quiere utilizar.
Paso 2: Indicar el nombre que se le dará al External Object, su descripción, carpeta de ubicación y prefijo.
Definición del consumidor de un Web Service
Objetos Externos
Paso 3: Una vez descubierto el Web Service, presionamos Import para importarlo.
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).
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
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:
Definición del consumidor de un Web Service
Objetos Externos
Web Services en GeneXusManejo de errores
http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7021http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7022
• 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. En tiempo de generación: mediante location.xml2. En tiempo de ejecución mediante un archivo: location.xml3. En tiempo de ejecución mediante código: utilizando variables tipo
Location
• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6981
• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?6111
Web ServicesLocations
Ejemplo
&location= GetLocation('WebserviceDatatype')&location.Host = Localhost &location.Port = 8085 &location.CancelOnError=2&location.Timeout=&timeout&outparam= &webservice.Method(&inparams)&SoapErr=GetSOAPErr()&SoapMsg=GetSOAPErrMsg()
TroubleShooting
• Tcptrace http://www.gxtechnical.com/gxdlsp/dist/iehelp.htm?genexus/internet/technicalpapers/debugcallsoap.htm
• SoapUI
http://www.soapui.org/
Rest
Por qué REST?
• Optimización de tráfico• Accesible a cualquier cliente HTTP
Por qué
REST
Qué es REST?
• Exponer recursos en la web en un formato estándar: XML, Json..
XML
….JSON
Qué
Es
REST
…Invocando un servicio RESTQué
Es
REST
RESTful Web Services
• Sintáxis universal para identificar los recursos (URI)
• Definición de una representación del estado• MIME TYPE: XML, Json..
• Interfaz Uniforme(GET, POST, PUT, DELETE)
Qué
Es
REST
Analogía CRUD
Resource POST GET PUT DELETE
URI: http://server/Product/123
Create Read Update Delete
Qué
Es
REST
REST a la luz de GeneXus
• Business Components• Create (POST), Read (GET),
Update (PUT), Delete (DELETE)
• Data Providers• Read (GET)
• Procedures• POST
REST
en
GENEXUS
http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?14573
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
REST
en
GENEXUS
Lista de Entidades
REST
en
GENEXUS
• Lista de Entidades / Entidad por PK
Ejemplo: Exponer un Recurso para modificación
REST
en
GENEXUS
Cliente de servicio RESTREST
En
GENEXUS
Json 2 SDT
• Tools – Application Integration – Json Import
• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?22574
TroubleShooting
• Tcptracehttp://www.tcptrace.org/• RestClienthttps://code.google.com/p/rest-client/
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
XML Schema Import
• Tools/Application integration/XML schema Import. (XSD)
• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?7200