2016-08-28 1 views
3

J'écris actuellement quelques services de micro avec Foxx pour être consommés par Ember.js. Les données Ember jouent très bien avec les réponses de l'API JSON (http://jsonapi.org). J'ai donc essayé de sérialiser les réponses Foxx avec le json-api-serializer (https://www.npmjs.com/package/json-api-serializer) - mais sans chance. Je n'ai trouvé que la méthode forClient, mais cela ne me permet que d'opérer sur la représentation JSON d'objets uniques, et non sur la réponse entière. Donc ma question: Est-il possible d'implémenter l'API JSON avec Foxx/ArangoDB?Foxx/ArangoDB: pouvez-vous créer une réponse qui respecte les spécifications de l'API JSON?

Répondre

3

Vous pouvez renvoyer des réponses arbitraires à partir de routes Foxx. Il est donc tout à fait possible de générer des réponses JSON conformes à l'API JSON.

Cependant, il n'y a pas de façon intégrée de le faire automatiquement.

Je ne vois rien dans json-api-serializer qui ne devrait pas fonctionner dans Foxx, donc je ne suis pas sûr des problèmes que vous rencontrez. Vous devriez pouvoir retourner simplement l'objet de sortie avec res.json(outputFromSerializer) et définir le type de contenu avec res.set('content-type', 'application/vnd.api+json').

Si tout le reste échoue, vous pouvez simplement écrire vos propres fonctions d'assistance pour générer l'API JSON standard et les métadonnées attendues.

+0

OK, vous avez raison. Mon problème était que j'ai tripoté la méthode forClient du modèle au lieu d'implémenter la sérialisation directement dans la route. Dans la route cela fonctionne comme un charme. Merci de m'indiquer dans la bonne direction! – JPS