Fiz um exemplo próprio, com uma lista de fornecedores. No entanto, o DELETE parece não funcionar, pois utilizo o comando DELETE pelo curl, e quando retorno a lista de fornecedores pelo curl http://localhost:8080/fornecedores
, ele ainda se encontra lá:
public class Fornecedor {
private long id;
private String nome;
private String email;
private String comment;
private String cnpj;
public Fornecedor criaFornecedor(long id, String nome, String email, String comment, String cnpj) {
this.id = id;
this.nome = nome;
this.email = email;
this.comment = comment;
this.cnpj = cnpj;
return this;
}
public String toXML(){
return new XStream().toXML(this);
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
}
public class FornecedorDAO {
private static List<Fornecedor> bancoMemoria = new ArrayList<Fornecedor>();
private static AtomicLong counter = new AtomicLong(1);
static {
Fornecedor fornecedor = new Fornecedor().criaFornecedor(1l, "Neomind", "vendas@neomind.com.br",
"Soluções voltadas a gestão de processos, documentos e indicadores para organizações.", "08.032.121/0001-27");
bancoMemoria.add(fornecedor);
}
public static List<Fornecedor> getBancoMemoria() {
return bancoMemoria;
}
public String toXML(){
return new XStream().toXML(FornecedorDAO.getBancoMemoria());
}
public Fornecedor buscaFornecedorNoBanco(Long id) {
for (Fornecedor fornecedor : bancoMemoria) {
if(fornecedor.getId() == id){
return fornecedor;
}
}
return null;
}
public void adicionaFornecedorAoBanco(Fornecedor fornecedor) {
long id = counter.incrementAndGet();
fornecedor.setId(id);
bancoMemoria.add(fornecedor);
}
public void removeFornecedorDoBanco(int id) {
for (Fornecedor fornecedor : bancoMemoria) {
if(fornecedor.getId() == id){
bancoMemoria.remove(id);
}
}
}
}
@Path("fornecedores")
public class FornecedorResource {
@GET
@Produces(MediaType.APPLICATION_XML)
public String busca() {
FornecedorDAO fornecedores = new FornecedorDAO();
return fornecedores.toXML();
}
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response adiciona(String conteudo) {
Fornecedor fornecedor = (Fornecedor) new XStream().fromXML(conteudo);
new FornecedorDAO().adicionaFornecedorAoBanco(fornecedor);
URI uri = URI.create("/fornecedores");
return Response.created(uri).build();
}
@Path("{id}")
@DELETE
public Response removeProduto(@PathParam("id") int id) {
new FornecedorDAO().removeFornecedorDoBanco(id);
return Response.ok().build();
}
}