Alexandre Saudate:
Até onde ví, ficou muito bom, parabéns!
Dúvida: você não usou HATEOAS em ponto algum dos seus serviços, né? Tem planos? O Ember.js ajuda nesse sentido?
[]'s
Procurei entender um pouco o que é HATEOAS antes de te responder, mas não compreendi muito bem, vou te explicar como funciona no Ember.
A configuração dos URLs REST no ember-data são geradas (quando usado a convenção) pelo o mapeamento e nome dos Models.
Supondo que o modelo é formado por ‘Post’ e que cada post possa ter vários ‘Comment’ então ele espera que os resultados desses recursos sejam retornados no seguinte formato
(fonte: http://emberjs.com/guides/models/the-rest-adapter/):
Requisição 1: GET /posts/1
Resposta:
{
"post": {
"id": 1,
"title": "Rails is omakase",
"comment_ids": [1, 2, 3]
}
}
Requisição 2: GET /comments?ids[]=1&ids[]=2&ids[]=3
Resposta:
{
"comments": [{
"id": 1,
"body": "But is it _lightweight_ omakase?"
},
{
"id": 2,
"body": "I for one welcome our new omakase overlords"
},
{
"id": 3,
"body": "Put me on the fast track to a delicious dinner"
}]
}
Não sei te dizer se isso é HATEOAS, mas caso queira a API do ember-data permite que você crie seus próprios adapters além dos já fornecidos.
Eu conheço 2 tipos de adapters:
- DS.FixtureAdapter (para criar protótipos sem necessidade do backend)
- DS.RESTAdapter (o que eu usei para conversar com o backend Java)
E equipe do ember estava criando outro Adapter como uma alternativa ao DS.RESTAdapter pra quem precisa personalizar as chamadas ajax.