Olá!
Estou pesquisando uma maneira de expor um serviço web via rest para retornar um JSON como resposta de uma requisição que recebe alguns parâmetros.
Dei uma olhada no VRaptor e vi que ele dá suporte à recursos Rest. Mas não vi nenhum exemplo específico que enaltecesse a alteração do MIME type. Então gostaria de saber qual seria a melhor maneira de fazer isso.
Como o Json não é um mime type válido da HTML, penso que seria necessário utilizar um plain text. Correto?
Então, estou pensando em fazer algo assim:
@Resource
public class WebServiceTest {
@Path("/testService")
public String getSomething(RequestBean request) {
//... logic
return jsonResult;
}
}
Seria este o raciocínio?
Att;
Oi, vhmolinar.
Talvez o código que você esteja procurando seja algo assim:
@Resource
public class WebServiceTest {
private final Result result;
public WebServiceTest( Result result )
{
this.result = result;
}
@Path("/testService")
public String getSomething(RequestBean request) {
//... logic
String jsonResult = "Teste";
result.use( Results.json() ).from( jsonResult ).serialize();
}
}
Esse código ajuda?
Saudações,
Almir.
esse Results.json() já seta o content-type pra “application/json”, do jeito que tem que ser =)
Já aproveitando o post, tem como, no mesmo método eu retornar tanto uma representação do meu objeto em XML quanto em JSON?
Se sim (ou se não tbm), como eu faço para capturar esse XML/JSON na minha view (jsp)?
[quote=jhow_gt]Já aproveitando o post, tem como, no mesmo método eu retornar tanto uma representação do meu objeto em XML quanto em JSON?
Se sim (ou se não tbm), como eu faço para capturar esse XML/JSON na minha view (jsp)?[/quote]
Você quer dizer retornar as duas representações ao mesmo tempo ou, dependendo da requisição, retornar XML ou JSON?
[quote=Ataxexe][quote=jhow_gt]Já aproveitando o post, tem como, no mesmo método eu retornar tanto uma representação do meu objeto em XML quanto em JSON?
Se sim (ou se não tbm), como eu faço para capturar esse XML/JSON na minha view (jsp)?[/quote]
Você quer dizer retornar as duas representações ao mesmo tempo ou, dependendo da requisição, retornar XML ou JSON?[/quote]
Dependendo da requisição
você pode usar:
result.use(Results.representation()).from(xx, "nome").serialize();
daí ele escolhe o formato baseado no http header Accept.
[quote=Lucas Cavalcanti]você pode usar:
result.use(Results.representation()).from(xx, "nome").serialize();
daí ele escolhe o formato baseado no http header Accept.[/quote]
Blz Lucas!! Era isso mesmo que queria! Valew!