Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ricardo Sobjak
desenvolvido em Java?
Denio
REpresentational State Transfer (REST) um
estilo de arquitetura de software para hipermdia distribuda, tal como a World Wide Web.
O protocolo HTTP rico o bastante para proporcionar Web services, e no h necessidade de criar-se nenhuma abstrao para este fim. Para ter um Web Service efetivo necessrio apenas de:
um cliente, um servio, informao, um meio para encapsular esta informao (XML, JSON, YAML, etc); e um meio para acessar esta informao (HTTP).
8
Na prtica, funciona como um conjunto de princpios que servem para denir um sistema, tais como:
arquitetura cliente/servidor; no armazenar estado; cache uma interface nica e bem denida, tais como os mtodos do HTTP (GET, POST, PUT, DELETE); Identificao nica de cada recurso Mltiplas representaes de um mesmo recurso
9
Simples e praticamente acessvel de qualquer linguagem de programao HTTP maduro e consolidado Simples:
um Web Service que utiliza HTTP e segue os princpios REST. Em geral, possui 3 caractersticas principais:
Substantivos (recursos):
uma URI (identificador nico de um recurso) base para o Web
Service.
Verbos (operaes)
um conjunto de operaes suportados, utilizando os mtodos HTTP.
JSON.
11
A parte mais importante de um web service RESTful se refere suas URIs. Em geral, temos uma URI base para identicar um recurso, e teremos operaes que variam conforme o mtodo HTTP utilizado. Essas operaes seriam equivalentes s mesmas operaes de CRUD.
12
Usar Servlets? Usar frameworks de terceiros no padronizados? Nada disso!! JAX-RS Foco em POJOs e anotaes JSR 311 e JSR 339 Aplicaes JAX-RS podem rodar em um simples servlet continer Programar em Java prazeroso de novo! Voc no faz parse de XML nem JSON, nem de nenhum outro formato famoso Voc s anota e programa sua lgica de negcio O livro da vez RESTful Java with JAX-RS.
15
no Java EE, existe uma especicao chamada JAX-RS (JSR-311) que padroniza anotaes para criar um Web Service seguindo os princpios REST, aqui ser utilizado o Jersey que a implementao de referncia desenvolvida pela prpria Sun.
16
executado.
@XmlRootElement public class Endereco { private int id; private String cidade; private String uf; private String cep; // getters and setters }
19
1) O que um RESTful? 2) O que so os recursos? E como so acessados? 3) Quais so os verbos do RESTful? 4) Existe alguma especificao de REST para a linguagem Java? 5) Cite um framework que utilize a especificao JAX-RS. 6) Qual a anotao do JAX-RS usada para indicar um recurso?
20
DAL MORO, Tharcis; DORNELES, Carina F.; REBONATTO, Marcelo Trindade. Web services WS-* versus Web Services REST. REIC - Revista de Iniciao Cientca, v. 11, n. 1, p. 36-51, 2011.
RICHARDSON, Leonard; RUBY, Sam. RESTful Servios Web. Rio de Janeiro: Alta Books, 2007. 336 p.
SILVA, Edilson Hipolito da; FERREIRA, Edson Mundin. Web Service REST em Java com JAX-RS, In: Congresso Cientfico da Regio Centro-Ocidental do Paran, IV., 2011, Campo Mouro. Anais do CONCCEPAR 2011: Campo Mouro, 2011.
21