| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 10:23:54
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Caros,
Estou usando VRaptor, versão 3.3.1, para expor uma API REST.
Atualmente, a API exibe apenas os dados, mas estamos tentando incluir links para os próximos recursos disponíveis.
O problema é que os links não estão sendo serializados.
Tenho um Controller:
Na documentação do VRaptor fala que tenho que implementar a interface br.com.caelum.vraptor.restfulie.hypermedia.HypermediaResource: https://github.com/caelum/restfulie-java
Aqui começam os problemas. O VRaptor mudou o método desta interface. Até aí nada, fiz a implementação de acordo com a nova interface:
O seguinte request, usando curl:
Deveria retornar:
Mas não está incluindo o link. Inclusive, coloco um breakpoint no método configureRelations e não está passando lá.
Alguém teria alguma idéia?
|
[],
AC |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 10:32:47
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
vc configurou o pacote do restfulie no web.xml?
se vc não fizer isso o VRaptor não registra os componentes do restfulie server
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 10:36:51
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Sim. Segue meu web.xml
Todos as classes estão no package meu.pacote.<alguma coisa>
|
[],
AC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 10:39:01
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Esse erro poderia estar relacionado com isso? https://github.com/caelum/vraptor/issues/241
|
[],
AC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 10:40:51
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
hum.. é possível que sim =(
vc chegou a testar com xml()?
o problema é a ordem em que o representation() está testando os serializers... ele tá pegando o xml puro antes do restfulie
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 11:05:30
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Se eu mudar de: Para: E, fizer o request: Tenho a resposta: Atente para o tamanho do body: Content-Length: 0 Se eu passo um Id inexistente ele retorna um 404. Isto é, tenho certeza de quem tem um Cliente com dados neste Id. Alguma idéia? Começo a baixar o código do VRaptor?
This message was edited 1 time. Last update was at 06/07/2011 12:44:35
|
[],
AC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 12:01:12
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
faz só um teste: tire o recursive(). o método serialize precisa ser chamado também...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 13:06:13
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Vamos lá....
1.
2.
3. Fiz um outro teste passando o header 'Accept: application/json'
Resumindo: Nem o recursive, nem a representação em JSON, estão tratando os relations da classe root.
|
[],
AC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 14:07:58
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
dá algum erro no console do servidor? é estranho o conteúdo vir vazio...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 16:11:23
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Não reparei se dava erro. Estou olhando a implementação dos serializadores e não estou entendendo onde ele faz o parse dos links. Olhando a classe DefaultRepresentationResult, vi que ela só executa os serializadores. E, a XStreamXMLSerialization seriaiza para XML. Certo? Então, nesta segunda, não entendi onde ele faz a criação dos links. Poderia me ajudar?
This message was edited 1 time. Last update was at 06/07/2011 16:15:44
|
[],
AC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 16:38:50
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
o que gera os links é o RestfulSerialization
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 16:51:21
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Mas o RestfulSerialization é só para o XStreamXMLSerialization, certo? Estava precisando para o JSON. Não encontrei uma implementação de serializador para JSON. Devo implementar um? A idéia é ter um JSON assim:
This message was edited 2 times. Last update was at 06/07/2011 17:06:17
|
[],
AC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 16:57:15
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
pra json não está implementado mesmo... quer ajuda pra implementar a extensão?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 17:05:48
|
acdesouza
JavaChild
![[Avatar]](/images/avatar/d4535535b455dd9b910ba56286a4d8f5.jpg)
Membro desde: 20/08/2007 02:57:52
Mensagens: 110
Localização: Rio de Janeiro
Offline
|
Sim. #comofaz?
Estou vendo a implementação das classes do pacote: br.com.caelum.vraptor.restfulie.serialization
Acredito que saberia criar um parse, mas não sei como fazer ele ser utilizado. Por onde começo?
|
[],
AC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/07/2011 17:25:52
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
vc pode criar uma classe bem parecida com essa:
https://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/restfulie/serialization/RestfulSerialization.java
daí vc estende XStreamJSONSerialization ao inves do XML, e talvez vc tenha que modificar o linkConverter (ele já vai gerar um json com links, mas talvez não esteja no formato que vc quer)
qqer coisa grita
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
|
|