classe do carrinhoResource
package br.com.alura.loja.resource;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.thoughtworks.xstream.XStream;
import br.com.alura.loja.dao.CarrinhoDAO;
import br.com.alura.loja.modelo.Carrinho;
@Path("carrinhos")
public class CarrinhoResource {
@Path("{id}")//indica que vai receber um parametro atraves da uri
@GET
@Produces(MediaType.APPLICATION_XML)
public String busca(@PathParam("id") long id) {
Carrinho carrinho = new CarrinhoDAO().busca(1l);
return carrinho.toXML();
}
@POST//vai enviar uma representação do cliente para o servidor
@Produces(MediaType.APPLICATION_XML)
public String adiciona(String conteudo) {
Carrinho carrinho = (Carrinho) new XStream().fromXML(conteudo);//criando carro
new CarrinhoDAO().adiciona(carrinho);//adicionando ao banco
return "<status>success</status>";
}
}
classe carrinhoDAO
package br.com.alura.loja.dao;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import br.com.alura.loja.modelo.Carrinho;
import br.com.alura.loja.modelo.Produto;
public class CarrinhoDAO {
private static Map<Long, Carrinho> banco = new HashMap<Long, Carrinho>();
private static AtomicLong contador = new AtomicLong(1);
static {
Produto videogame = new Produto(6237, "Videogame 4", 4000, 1);
Produto esporte = new Produto(3467, "Jogo de esporte", 60, 2);
Carrinho carrinho = new Carrinho()
.adiciona(videogame)
.adiciona(esporte)
.para("Rua Vergueiro 3185, 8 andar", "S‹o Paulo")
.setId(1l);
banco.put(1l, carrinho);
}
public void adiciona(Carrinho carrinho) {
long id = contador.incrementAndGet();
carrinho.setId(id);
banco.put(id, carrinho);
}