@Post com priority path

8 views
Skip to first unread message

William Tomé Silva

unread,
Apr 28, 2016, 6:26:15 PM4/28/16
to caelum-vraptor
Estou com a seguinte dúvida:

Tenho os métodos:

@Transactional
@Post
@Consumes("application/json")
@Path(value = "/adiciona", priority = Path.HIGHEST)
public void adicionaTriangularCliente(Pedidos persist, VendasOpTriangularCliente opTriangularCliente) {
   
...
}

@Transactional

@Post
@Consumes("application/json")
@Path(value = "/adiciona", priority = Path.HIGH)
public void adicionaTriangularFornecedor(Pedidos persist, VendasOpTriangularFornec opTriangularFornec) {
   
...
}





@Transactional
@Override
@Post
@Consumes("application/json")
@Path(value = "/adiciona", priority = Path.DEFAULT)
public void adiciona(Pedidos persist) {
}


Gostaria de saber se é possível manter a URI /adiciona e, ao mesmo tempo, de acordo com os parâmetros enviados, ele consiga identificar para qual método enviar. 
Levando em consideração o preenchimento (ou não) da segunda variável (que pode ser to tipo VendasOpTriangularFornec ou VendasOpTriangularCliente).

Ex.:

//enviando o json:
//chamaria o método de prioridade Default
{
   "persist": objetoPersist
}


//chamaria o método de prioridade Hight
{
   "persist": objetoPersist,
   "opTriangularFornec" : objetoTrFor
}


//chamaria o método de prioridade Hight
{
   "persist": objetoPersist,
   "opTriangularCliente" : objetoTrCli
}

Lucas Cavalcanti

unread,
Apr 29, 2016, 4:35:47 PM4/29/16
to caelum-vraptor
O priority só funciona pra argumentos do path... tipo algo como:

@Post("/adiciona/:bolinha", priority = LOW)

...

@Post("/adiciona/quadrado")

com URLs iguais não vai rolar... se vc quiser despachar de acordo com o corpo do request, vc vai ter que implementar isso na mão, sobrescrevendo o comportamento do VRaptor...

algum motivo pra não simplesmente mudar a URL no cliente?


--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.

William Tomé Silva

unread,
Apr 29, 2016, 4:56:14 PM4/29/16
to caelum-vraptor
Na verdade era para manter o padrão que definimos no sistema, mas pelo que vi a solução mais simples será mudar no cliente mesmo. 
Apenas fiquei curioso a respeito, porque já não era a primeira vez que eu caia nessa dúvida.

Obrigado pela atenção.
Reply all
Reply to author
Forward
0 new messages