Click here to load reader

Web services restful con JAX-RS

  • View
    1.203

  • Download
    3

Embed Size (px)

DESCRIPTION

Transferencia de Estado Representacional (Representational State Transfer) o REST Originado en el año 2000 por el doctor Roy Fielding en la Universidad de California en su tesis doctoral Tesis “Estilos de Arquitectura y el Diseño de Arquitecturas de Software basadas en Redes” Principios arquitectónicos de software para usar a la Web como una plataforma de Procesamiento Distribuido

Text of Web services restful con JAX-RS

  • 1. ServiciosWeb RestFul DiegoArmandoGmezM. [email protected] SunCer:edJavaAssociated. SunCer:edJavaProgrammer. SunCer:edWebComponentDeveloper. SunCer:edBusinessComponentDeveloper5Derechosreservados2014

2. QueesunWebService? S UnWebServiceesunapiezadesoLwareiden:cadaporunURI(UniformResource Iden:er). S Sumediodecomunicacinsefundamentaenel usodeXML,TEXT,JSON S XML S XMLNamespace,XMLSchema,Xpath,XSLT. S HTTP,JSON 3. Computacindistribuida ServersPDAServersCell PhoneInternet WorkstationClientsClient-Server(C/S) silosClientsWeb-based computingSOA computingKioskServerLaptopWeb Services/Peer-to-Peer 4. TradicionalC/Svs.ServiciosWeb Traditional C/S " "Within enterprise Tied to a set of programming languages " Procedural " Usually bound to a particular transport " Tightly-coupled " Efficient processing (space/time)Web Service " Between enterprises " Program languageindependent " Message-driven " Easily bound to different transports " Loosely-coupled " Relatively not efficient processing 5. WebApplica:onvs.WebServices Web Application " User-to-program interaction " Static integration of components " Monolithic serviceWeb Service " Program-to-programinteraction " Possibility of dynamic integration of components (in the future) " Possibility of service aggregation (in the future) 6. RestFul 7. Historia S TransferenciadeEstadoRepresentacional(Representa:onalStateTransfer)oREST S Originadoenelao2000poreldoctorRoyFielding enlaUniversidaddeCaliforniaensutesisdoctoral S TesisEs:losdeArquitecturayelDiseode ArquitecturasdeSoLwarebasadasenRedes S PrincipiosarquitectnicosdesoLwareparausarala WebcomounaplataformadeProcesamiento Distribuido 8. Historia S U:lizaXMLyHTTP,sinlasabstraccionesadicionalesdelosprotocolosbasadosenpatronesde intercambiodemensajescomoelprotocolode servicioswebSOAP. S Sehizopopularmuchosaosdespusconla creacindevariosframeworkquehacenfcilel desarrollodeserviciosRestFul 9. Historia S MuchasempresasconampliosservicioseninternetestnmigrandosusserviciosaRest. S S S SAmazon Facebook Yahoo Twiter 10. Los4principiosdeRest S U:lizalosmtodosHTTPdemaneraexplcita S Noman:eneestado S ExponeURIsconformadedirectorios S TransereXML,JavaScriptObjectNota:on(JSON),oambos 11. UsodemtodosHTTPdemaneraexplcita S RestFulusadeformaexplicitalosmtodosHTTPparaejecutaraccionesdeCRUD VerboRESTAccinPOSTCreateGETReadPUTUpdateDELETEDelete 12. Noman:eneestado S BasadoenelprotocoloHTTPsinestado. S Serviciosmassimplesdedisear,escribiryreu:lizar. S Elmanejodelosestadosdebeserhechoporelclientedelosservicios. 13. ExponeURIsconformadedirectorios S LasURIdelosserviciosRestdebenserintui:vas. S Sedebenpoderdeducirdeformafcil. S LasURIsedenencomounaestructuradecarpetasodirectorios. 14. ExponeURIsconformadedirectorios S Direccionesdeunblog hip://www.vortexbird.org/discusion/temas/{tema} hip://www.vortexbird.org/discusion/{ao}/{mes}/{dia}/{tema} hip://www.vortexbird.org/discusion/2008/12/23/javaEE 15. ExponeURIsconformadedirectorios S Buenasprac:casparacrearURIsparaserviciosRestS OcultarlatecnologausadaenelservidorqueapareceracomoS S S SSextensindearchivos(.jsp,.php,.asp),demaneradepoder portarlasolucinaotratecnologasincambiarlasURI. Mantenertodoelurienminsculas. Sus:tuirlosespaciosconguionesoguionesbajos(unouotro). Evitarelusodestringsdeconsulta. Envezdeusarun404NotFoundsilape:cinesunaURI parcial,devolverunapginaounrecursopredeterminadocomo respuesta. URIest:codeformaquelosusuariospuedancrearfavoritos"o bookmarks. 16. TransereXML,JSONoambos S XML:eXtensibleMarkupLanguage

17. TransereXML,JSONoambos S JSON:JavaScriptObjectNota:on {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} 18. TransereXML,JSONoambos S TiposMIMEmsusadosparalosservicioswebRESTson:MIME-TypeContent-TypeJSONapplica:on/jsonXMLapplica:on/xmlXHTMLapplica:on/xhtml+xmlTEXTtext/plain 19. WebApplica:onDescrip:on Language(WADL) 20. WebApplica:onDescrip:onLanguage (WADL) S FormatoXMLusadoparaladescripcindeaplicacionesWebbasadasenHTTP. S ElpropsitodeWADLesdescribirlosserviciosResto cualquiersi:oweb. S CumpleunpapelsimilaraWSDLparaserviciosSOAP. S EstndaradministradoporW3C. 21. WebApplica:onDescrip:onLanguage Yahoonewssearch (WADL)01 02 09 . 23 24 25 26 27 28 29 30 31 32 33 34 35 38 41 44 45 46 48 50 51 52 53 22. JAX-RS 23. JAX-RS S EspecicacinparadesarrollodeserviciosRestenlaplataformaJavaEE S VersinactualJAX-RS1.1 S JSR311 S IntegradaaJavaEE6 S Anotacionesparaexposicindeservicios. S EselequivalentedeJAX-WSparaSOAP 24. JAX-RS S Implementacionesdereferencia. Jersey(SunOracle) CXF(Apache) RESTEasy(Jboss) 25. JAX-RS S BasadosenelconceptodePOJO(PlainOldJavaObject)S Clasessinextendsniimplements(Mar:nFowler) S TrminoheredadodeC/C++:PlainOldData(POD) S Tienesen:do,sonclasesdedatos 26. AnotacionesJAX-RS [email protected] [email protected] [email protected] [email protected] [email protected] HEADdeHTTP 27. AnotacionesJAX-RS [email protected]r ejemplo/holaMundo/@PathParamSeusaparaasignaralosparmetrosdelosmtodosel [email protected]:carel:podemimequeconsumeel mtodouoperacindelservicios.Ejemplos"applica:on/ xml","applica:on/json"@ProducesSeusaparaiden:carel:podemimequeproduceel mtodouoperacindelservicios.Ejemplos"applica:on/ xml","applica:on/[email protected] en:tybody.Estasclasesimplementan MessageBodyReaderorMessageBodyWrite 28. Tiposdedatossoportados TipodedatoJavaMimeTypebyte[]Allmediatypes(*/*)ava.lang.StringAlltextmediatypes(text/*)java.io.InputStreamAllmediatypes(*/*)java.io.ReaderAllmediatypes(*/*)java.io.FileAllmediatypes(*/*)javax.ac:va:on.DataSourceAllmediatypes(*/*)javax.xml.transform.SourceXMLmediatypes(text/xml,applica:on/xml,and applica:on/*+xml)javax.xml.bind.JAXBElementandapplica:on- suppliedJAXBclassesXMLmediatypes(text/xml,applica:on/xml,and applica:on/*+xml)Mul:valuedMapFormcontent(applica:on/x-www-form- urlencoded)StreamingOutputAllmediatypes(*/*),MessageBodyWriteronly 29. Cdigodeejemplo hip://127.0.0.1:8080/demoRest/services/operacionesMatema:cas/sumar/52/6 packagecom.vortexbir.rest.services; importjavax.ws.rs.Consumes; importjavax.ws.rs.GET; importjavax.ws.rs.Path; importjavax.ws.rs.PathParam; importjavax.ws.rs.Produces; @Consumes({"applica:on/xml","applica:on/json","text/plain"}) @Produces({"applica:on/xml","applica:on/json","text/plain"}) @Path("operacionesMatema:cas") publicclassOperacionesMatemaLcas{ @GET @Path("sumar/{numero_uno}/{numero_dos}") publicStringsumar(@PathParam("numero_uno")Integern1,@PathParam("numero_dos")Integern2){ intres=n1+n2; return""+res; } } 30. web.xmljersey ServletAdaptorname> com.sun.jersey.spi.container.servlet.ServletContainerclass> 1on-startup> ServletAdaptorname> /resources/*paYern> mapping> app> 31. WADLdeejemplohip://127.0.0.1:8080/demoRest/services/applica:on.wadl hip://127.0.0.1:8080/demoRest/operacionesMatema:cas/services?_wadl hip://127.0.0.1:8080/demoRest/operacionesMatema:cas/resources/applica:on.wadl 32. TallerdesarrollodeserviciosRest S ServicioOperacionesMatem:cas S Sumar S Restar S Mul:plicar S Dividir S Clientedelservicio 33. TallerdesarrollodeserviciosRest S ServicioCliente S Crear S Modicar S Borrar S ConsultarporID S ConsultarTodos S Clientedelservicio 34. ENLACES S hip://jersey.java.net/ S hips://addons.mozilla.org/es-ES/refox/addon/poster/ S hip://www.w3.org/Submission/wadl/ S hip://www.w3.org/Submission/2009/03/ Comment S hip://www.ibm.com/developerworks/ webservices/library/ws-restwsdl/ S hip://wadl.java.net/ 35. ENLACES S hip://webservices.xml.com/ S hips://blueprints.dev.java.net/books.html 36. Informacindecontacto S Si:oWeb:www.vortexbird.com S Blog:hip://blog.vortexbird.com S Contactovamail:[email protected] S Telfonos:+57-(3164824629) S Cali,Colombia

Search related