Olá,
Fui solicitado aqui no trabalho a criar um web service usando JSON como forma de comunicação.
Criei um Controller com um método que aceita um parâmetro String, e então converto a String para JSON, e tudo funcionou:
Servidor:
@Post
public void sendOrder(String order) {
}
Cliente:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="https://raw.github.com/douglascrockford/JSON-js/master/json2.js"></script>
<script type="text/javascript">
$.post("orders/sendOrder",
{
order:JSON.stringify(
{"orderId":471, ... <MEU JSON ...> }
)
}
);
</script>
Se a gente olhar a requisição HTTP, os dados estarão assim:
order:{"orderId":471, ... <MEU JSON ENCODED ...> }
O problema é que o cara que está fazendo a aplicação cliente quer passar apenas o JSON, sem o nome do parâmetro no início (“order:”), como se a requisição HTTP fosse apenas:
{"orderId":471, ... <MEU JSON ...> }
Qual caminho devo seguir? Mudar o parâmetro do meu método para um objeto JSON?
Como instruir VRaptor a atribuir o conteúdo da requisição HTTP, no caso um JSON, direto para o parâmetro order?
Servidor:
@Post
public void sendOrder(JSON order) {
}
Decidi usar VRaptor por indicações de amigos, mas como não tenho muita experiência com este framework, gostaria de ouvir idéias de possíveis alternativas.
Obrigado