Nessa altura do campeonato acho que já não haveria a necessidade do Restifulie, pois o ganho mesmo seria no client, mais isso não será o caso.
Ainda não gostei da forma que tenho que fazer para usar o representation, eu gostaria de poder utilizar o mesmo metodo para as mais de uma situação, por exemplo na tela eu poderia utilizar json para ajax, xml como webservice, ou somente utilizar um include(“meuObjeto”, meuObjeto); e utilizar isso numa tabela por exemplo.
[quote=davisnog]Fazendo uns testes aqui, lembrei que posso utilizar Results.representation(), mais dai eu não consegui utilizar as url como eu usaria se não precisasse passar _format=xml, antes eu fazia assim http://localhost:8080/Testes/categoriaveicular/1, com eu preciso passar o formato eu tenho que fazer assim http://localhost:8080/Testes/categoriaveicular.buscar?_format=xml&categoriaVeicular.codigo=1.
[/quote]
pq vc precisa mudar tanto sua url soh pra incluir o formato?
http://localhost:8080/Testes/categoriaveicular/1?_format=xml já é o suficiente…
e se vc tiver a possibilidade, nem precisa colocar o _format… vc pode colocar na requisição o header:
Accept: application/xml
usando a URI padrão: http://localhost:8080/Testes/categoriaveicular/1
Perfeito Lucas, funcionou, com Accept: application/xml.
antes eu tinha testado e imprimia o conteudo no console para teste, e retirando essa impressão do console, o xml é gerado somente com o proxy da classe, não aparecendo os dados. Agora se eu imprimo qualquer informação desse objeto no console, dessa forma os dados no xml é gerado normalmente.
Pelo que eu pude perceber, eu tenho que chamar algum metodo do meu objeto antes de gerar o xml.
somente mais uma duvida, para eu utilizar outros metodos delete, e put, seria dessa forma:
http://localhost:8080/Testes/categoriaveicular/1?_method=DELETE
Lembrando que essa chamada é feita pelo cliente do webservice.
Testando essa url no navegador me aparece esse erro:
java.lang.IllegalArgumentException: You can't use _method parameter on a GET request. Use POST instead.
br.com.caelum.vraptor.resource.HttpMethod.of(HttpMethod.java:51)
br.com.caelum.vraptor.http.DefaultResourceTranslator.translate(DefaultResourceTranslator.java:52)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:64)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:62)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:55)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
se vc tá fazendo a requisição via um cliente http (que não seja um browser), vc pode setar o httpMethod diretamente pra PUT ou DELETE…
senão vc tem que fazer uma requisição POST com o parametro _method setado pra PUT ou DELETE
perfeito Lucas, agora achei um client Restful http://rest-client.googlecode.com/ para testar minha aplicação. Value mesmo.