Como não ferir o padrão Restful

2 respostas
javarest
F

Boa noite pessoal, tudo bem?
Tenho adotado um “padrão” em meus recursos e não sei se isso fere o conceito de API Restful. O cenário é basicamente o seguinte: Dada uma listagem de um objeto qualquer na página, o usuário pode selecionar alguns itens (objetos) e remover em lote. Neste caso, a usabilidade do método @GET não é muito interessante.

Segue o trecho de código para exemplificar:

@POST
@Path("/remove/selecionados")
public void remove(String json) {
    Gson gson = new Gson();
    Type typeLong = new TypeToken<List<Long>>() {
    }.getType();
    List<Long> ids = gson.fromJson(json, typeLong);
    service.remove(ids); // service trabalhando
}

Notem que estou usando um método @POST para efetuar uma remoção! Porém, não encontrei uma forma mais “elegante” de tratar este caso.

2 Respostas

H

Existe uma anotação para remover registros, evite usar verbos como path, as açoes devem ser indicadas pelos metodos http e não pela url.
De uma olhada na documentacao abaixo.
https://jersey.java.net/documentation/latest/jaxrs-resources.html

@DELETE
@Path("/")
public void remove(String json) {}
F

@Henrique_Luiz_Silva, tenho conhecimento da anotation @DELETE, porém, no front-end, eu não consigo passar um JSON via .delete(). Eu já uso este método, porém, somente quando eu quero remover apenas um objeto, passando o id do mesmo na URL. Portanto, minha dúvida persiste =/

ps: eu evito usar o @Path nos métodos, só que neste caso, se fez necessário (por enquanto eu espero… rs).

ps2: agora que me atentei que no post original citei o método @GET(quis dizer @DELETE) … foi o sono!

Obrigado desde já ^^

Criado 3 de janeiro de 2017
Ultima resposta 3 de jan. de 2017
Respostas 2
Participantes 2