Transcript
  • 24/7/2015 ServiciosWCF:ConsumirporRESTySOAPsimultaneamenteeledwin.com

    data:text/htmlcharset=utf8,%3Ch1%20style%3D%22margin%3A%200px%3B%20padding%3A%200px%3B%20fontfamily%3A%20Oswald%2C%20Ari 1/7

    ServiciosWCF:ConsumirporRESTySOAPsimultaneamente

    Publicadoel17/05/2014|1847visitas

    RegresandonuevamentedeunosdasconmuchotrabajoquierocompartirconustedesestetutorialparaconstruirunserviciowebcontecnologaWCFyloexpondremosporSOAPyRESTsimultneamente.

    Antesdeiralcdigoprestemosatencinalaimagenanterior.Normalmenteestoseraloqueyohagosituvieraqueexponerinformacinhaciaunoovariosaplicativosenmismasodiferentesplataformasytecnologas.

    PararealizarestetutorialvamosasuponerqueesunsistemadecomprasonlineyvamosaexponerunaAPIpublicaparaconsultadeproductos.

    VamosaexponerporSOAPhaciaunaaplicacindeescritorioyporRESThaciaunsitioWebqueconsumiremosporAjax.

  • 24/7/2015 ServiciosWCF:ConsumirporRESTySOAPsimultaneamenteeledwin.com

    data:text/htmlcharset=utf8,%3Ch1%20style%3D%22margin%3A%200px%3B%20padding%3A%200px%3B%20fontfamily%3A%20Oswald%2C%20Ari 2/7

    EntendiendolosconceptosbsicosWCF,SOAPyRESTYaquenoestemadeestetutorialcontextualizarnossobreestastecnologasvoysimplementeacitaralgunossitiosdondepodrnconocerencasodequenotenganniideadequesetrataesto.

    WCFQueesWindowsCommunicationFoundation[ingls]WindowsCommunicationFoundationWikipedia[ingls]

    SOAPSimpleObjectAccessProtocolWikipedia

    RESTRepresentationalStateTransfer

    Sabiendoesto,vamosainiciarlaconstruccindenuestropequeoproyectoenVisualStudio2010yFramework4.0osuperior.

    VamosacrearunanuevaaplicacinWebvaciaoASP.NETEmptyWebApplicationqueyollamarMiMercado.

    Eneste,creareunacarpetallamadaServicesyenestacarpetavoyacrearmiServicioWCFhaciendoclicderechosobrelacarpeta,Aadir,Nuevoelementoybuscamos"ServicioWCFHabilitadoparaAJAX"o"AJAXenabledWCFService"quellamaremos"MiMercadoService.svc".

  • 24/7/2015 ServiciosWCF:ConsumirporRESTySOAPsimultaneamenteeledwin.com

    data:text/htmlcharset=utf8,%3Ch1%20style%3D%22margin%3A%200px%3B%20padding%3A%200px%3B%20fontfamily%3A%20Oswald%2C%20Ari 3/7

    EstenoesmsqueunservicioWCFcomn,loquepasaalcrearunserviciohabilitadoparaAJAXesqueseaadenalgunosatributosadicionalesenelarchivodeconfiguracineInterfaz,propiedadesyconfiguracionesquepodemosaadirmanualmentesinningninconveniente.

    QuetenemosalcrearelnuevoservicioWCF?ArchivoMiMercadoService.svc.csEstearchivoeslaimplementacindelservicioweb.AquiseespecificancadaunodelosmtodosuOperacionesdecontrato(OperationContract).Cadaunodeestosmtodosserexpuestosiempreycuandotengalapropiedad[OperationContract]sobreelmismo.ComoejemplotenemoselmtodopublicvoidDoWork().

    Adicionalmente,veamosqueenladefinicindelaclasetenemosotraspropiedadesquesonServiceContractyAspNetCompatibilityRequirements,estesegundohabilitalacompatibilidadconASP.NET.

    ArchivoWeb.ConfigAquipodemosevidenciarquesehacreadounnuevoniveldeconfiguracinllamadosystem.serviceModel,aquseconfiguranlosserviciosWCF.

    Tenemoslosservicesquesonladefinicindecadaunodelosserviciosquetengamos,losbehaviorssonlaconfiguracindeloscomportamientosdeestosserviciosy

  • 24/7/2015 ServiciosWCF:ConsumirporRESTySOAPsimultaneamenteeledwin.com

    data:text/htmlcharset=utf8,%3Ch1%20style%3D%22margin%3A%200px%3B%20padding%3A%200px%3B%20fontfamily%3A%20Oswald%2C%20Ari 4/7

    finalmenteserviceHostingEnvironmentquenospermiteestablecerparmetrosdeconfiguracinparaelhostdeserviciosengeneral.

    ConfigurarEndPointRESTySOAPenWCFEnWCFexisteunconceptollamadoEndPoint,estoenpalabrassimplessonpuntosdeaccesoenelservidor,podemosverlocomoejecutarunescuchadordesolicitudes.EnestecasocrearemosunEndPointpararecibirlassolicitudesRESTyotroparalassolicitudesSOAP.Parahacerestonosubicamosenlaseccindeservicesdelarchivoweb.config.Encontraremosalgosimilaraesto:

  • 24/7/2015 ServiciosWCF:ConsumirporRESTySOAPsimultaneamenteeledwin.com

    data:text/htmlcharset=utf8,%3Ch1%20style%3D%22margin%3A%200px%3B%20padding%3A%200px%3B%20fontfamily%3A%20Oswald%2C%20Ari 5/7

  • 24/7/2015 ServiciosWCF:ConsumirporRESTySOAPsimultaneamenteeledwin.com

    data:text/htmlcharset=utf8,%3Ch1%20style%3D%22margin%3A%200px%3B%20padding%3A%200px%3B%20fontfamily%3A%20Oswald%2C%20Ari 6/7

    [DataContract]publicclassProducto{[DataMember]publicintProductoID{get;set;}[DataMember]publicstringNombre{get;set;}[DataMember]publicdoublePrecio{get;set;}}

    Alasclasesconlasquevamosatransportarinformacindebemosagregarlelapropiedad[DataContract]yacadaatributodelaclaseel[DataMember].

    Ahoravamosacrearunmtodoqueretorneunalistadeproductos.

    [WebGet(UriTemplate="/productos",ResponseFormat=WebMessageFormat.Json)][OperationContract]publicListListarProductos(){//CrearlistadeproductosyaadirelementosListproductos=newList();productos.Add(newProducto(){ProductoID=0,Nombre="MotorolaMotoG",Precio=4500000});productos.Add(newProducto(){ProductoID=1,Nombre="SonyVaioUltra",Precio=950000});

    Bien,tenemosunmtodocomnycorrientecondospropiedades"extraas":

    [OperationContract]quenospermitehabilitarelmtodoparaqueseaexpuestopormediodelservicio,estonosdicequesinestapropiedadnopodramosinvocarloyaquenoestaradisponible.

    [WebGet]exponeesteservicioparaunasolicitudHTTPGET(SilestesobreRESTsabrsmasomenosdequesetrata).ParaestoespecificamosunUriTemplateconvalor"/productos"paraquepormediodelaurlinvoquemoslocalhost/productosenlugardelocalhost/ListarProductos.

    Laconfiguracin[WebGet]y[WebInvoke]sonnicamenteparaREST,siquierestrabajarsimplementeconSOAPnonecesitasestablecerestaspropiedades.

  • 24/7/2015 ServiciosWCF:ConsumirporRESTySOAPsimultaneamenteeledwin.com

    data:text/htmlcharset=utf8,%3Ch1%20style%3D%22margin%3A%200px%3B%20padding%3A%200px%3B%20fontfamily%3A%20Oswald%2C%20Ari 7/7

    AhorapodemosprobarnuestromtododeconsultaejecutandonuestroproyectoWeb.

    CmoprobarservicioWebRESTySOAPParaprobarunservicioRESTexistenvariasherramientasdeusolibreymuybuenasquepodemosutilizar,entrelasqueheexploradoencuentrolassiguientescomoaplicacionesdeGoogleChrome:PostmanRestClient,RestConsole,AdvancedRestClient.EncontrarsmuchasmsynosoloparaGoogleChrome,tambinparaFirefoxyparaescritorio,escuestindebuscar.

    ParasolicitudesRESTdetipoGETtambinpuedesutilizarelexploradordeInternetas:


Top Related