RESTful Web Services -Criando serviços  na  Web Rafael de F. Ferreira Sun Campus Ambassador [email_address]
Um pouco de história 1983: RPC 1992: Corba 1.1 1996: Microsoft DCOM 2000: SOAP 2004: WS-i Basic Profile ...
Enquanto isso... 1945: Memex  (Vannevar Bush) 1965: “Hipertexto”  (Ted Nelson) 1991: Gopher  (U. Minessota) 1991: World Wide Web  (Tim Berners-Lee, CERN) 1996: HTTP/1.0  (Tim Berners-Lee, Roy Fielding, et al.) 1999: HTTP/1.1  (Roy Fielding, et al.) 2000: Tese de  doutorado do Roy Fielding
REST Identificação de  Recursos Dê um  identificador  para cada “coisa” Interface uniforme Toda interação usa os mesmos  verbos Comunicação trocando  Representações Um recurso pode lidar diversos  formatos   Interações sem estado não existe “sessão” Hipermídia Representações contém  links  e  forms  para outros recursos
RESTful Web Services Interação programática usando princípios REST Usando HTTP Escalabilidade Pela arquitetura Pela infraestrutura Contribuição para a rede Interoperabilidade
HTTP Identificador  Universal de Recursos: URI Verbos :  GET ,  POST ,  PUT, DELETE,   HEAD,  OPTIONS Códigos de status padronizados Negociação de conteúdo ( formatos  MIME) Redireção Caching GET Condicional  Compressão Chunking
JSR-311  Framework para desenvolver serviços REST com Java Implementação de referência: Jersey (código aberto) Baseado em anotações Muito extensível
Root Resources @UriTemplate @HttpMethod @UriParam Response
Sub Resources
Sistema de Matrículas - Recursos Alunos /aluno/78796 Disciplinas /disciplina/MAC0222
Sistema de Matrículas – Recursos 2 Alunos /aluno/78796 Disciplinas /disciplina/MAC0222 Lista de alunos /alunos Lista de Disciplinas /disciplinas
Sistema de Matrículas - Formalizando
Sistema de Matrículas - Formalizando
Sistema de Matrículas - Formalizando
Sistema de Matrículas - Formalizando
Sistema de Matrículas – Último Recurso
Links NetBeans: http://www.netbeans.org JSR 311 http://jcp.org/en/jsr/detail?id=311 https://jsr311.dev.java.net/ Reference Implementation http://jersey.dev.java.net/ Lista de discussão http://tech.groups.yahoo.com/group/rest-discuss/ Tese do Roy Fielding http://www.ics.uci.edu/~fielding/pubs/ dissertation/top.htm
Fast Track Your Career with Sun! Get  FREE  Web-based training on  Java TM ,  Solaris TM  & more! Visit:  http://www.sunacademic.com Course registration code for ABC University is XYZ Increase earnings potential with a Sun Certification! Sun Certified Associate/Programmer for the Java 2 Platform SE Sun Certified Web Component Developer for Java EE Sun Certified Mobile Application Developer for Java ME Sun Certified System/Network Admin for Solaris Operating System  Free practice exams
Obrigado! Rafael de F. Ferreira http://blogs.sun.com/rafaelferreira [email_address]

REST e JSR-311

  • 1.
    RESTful Web Services-Criando serviços na Web Rafael de F. Ferreira Sun Campus Ambassador [email_address]
  • 2.
    Um pouco dehistória 1983: RPC 1992: Corba 1.1 1996: Microsoft DCOM 2000: SOAP 2004: WS-i Basic Profile ...
  • 3.
    Enquanto isso... 1945:Memex (Vannevar Bush) 1965: “Hipertexto” (Ted Nelson) 1991: Gopher (U. Minessota) 1991: World Wide Web (Tim Berners-Lee, CERN) 1996: HTTP/1.0 (Tim Berners-Lee, Roy Fielding, et al.) 1999: HTTP/1.1 (Roy Fielding, et al.) 2000: Tese de doutorado do Roy Fielding
  • 4.
    REST Identificação de Recursos Dê um identificador para cada “coisa” Interface uniforme Toda interação usa os mesmos verbos Comunicação trocando Representações Um recurso pode lidar diversos formatos Interações sem estado não existe “sessão” Hipermídia Representações contém links e forms para outros recursos
  • 5.
    RESTful Web ServicesInteração programática usando princípios REST Usando HTTP Escalabilidade Pela arquitetura Pela infraestrutura Contribuição para a rede Interoperabilidade
  • 6.
    HTTP Identificador Universal de Recursos: URI Verbos : GET , POST , PUT, DELETE, HEAD, OPTIONS Códigos de status padronizados Negociação de conteúdo ( formatos MIME) Redireção Caching GET Condicional Compressão Chunking
  • 7.
    JSR-311 Frameworkpara desenvolver serviços REST com Java Implementação de referência: Jersey (código aberto) Baseado em anotações Muito extensível
  • 8.
    Root Resources @UriTemplate@HttpMethod @UriParam Response
  • 9.
  • 10.
    Sistema de Matrículas- Recursos Alunos /aluno/78796 Disciplinas /disciplina/MAC0222
  • 11.
    Sistema de Matrículas– Recursos 2 Alunos /aluno/78796 Disciplinas /disciplina/MAC0222 Lista de alunos /alunos Lista de Disciplinas /disciplinas
  • 12.
    Sistema de Matrículas- Formalizando
  • 13.
    Sistema de Matrículas- Formalizando
  • 14.
    Sistema de Matrículas- Formalizando
  • 15.
    Sistema de Matrículas- Formalizando
  • 16.
    Sistema de Matrículas– Último Recurso
  • 17.
    Links NetBeans: http://www.netbeans.orgJSR 311 http://jcp.org/en/jsr/detail?id=311 https://jsr311.dev.java.net/ Reference Implementation http://jersey.dev.java.net/ Lista de discussão http://tech.groups.yahoo.com/group/rest-discuss/ Tese do Roy Fielding http://www.ics.uci.edu/~fielding/pubs/ dissertation/top.htm
  • 18.
    Fast Track YourCareer with Sun! Get FREE Web-based training on Java TM , Solaris TM & more! Visit: http://www.sunacademic.com Course registration code for ABC University is XYZ Increase earnings potential with a Sun Certification! Sun Certified Associate/Programmer for the Java 2 Platform SE Sun Certified Web Component Developer for Java EE Sun Certified Mobile Application Developer for Java ME Sun Certified System/Network Admin for Solaris Operating System Free practice exams
  • 19.
    Obrigado! Rafael deF. Ferreira http://blogs.sun.com/rafaelferreira [email_address]