2013-08-12 4 views
0

Cela peut être des questions évidentes, mais je ne vois aucune documentation traitant directement de la manière dont le backbone préfère que JSON soit formaté à partir d'une source d'API REST.Backbone.js et la structure du format JSON de l'API REST

Idéalement, je voudrais réduire le nombre d'appels API en incluant dans le message et quelques-uns des commentaires les plus récents.

Par exemple

dire que j'étais en train de récupérer le numéro du poste 404. L'utilisation d'un GET à http://api.example.com/v1/posts/404.json en utilisant .get(404)

Je pense que JSON imbriquée serait pratique/propre:

{ 
    "id": 404, 
    "title": "Hans shot first.", 
    "comments": [ 
     { 
     "id": 4041, 
     "body": "But not anymore!" 
     }, 
     { 
     "id": 4042, 
     "body": "Indeed he did." 
     } 
    ] 
} 

Ember.js semble préférer utiliser des identifiants relationnels. source Backbone.js préfère-t-il des fonctionnalités similaires?

{ 
    "post": { 
    "id": 404, 
    "title": "Hans shot first.", 
    "comment_ids": [4041, 4042] 
    }, 

    "comments": [{ 
    "id": 4041, 
    "body": "But not anymore!" 
    }, 
    { 
    "id": 4042, 
    "body": "Indeed he did." 
    }] 
} 

J'ai trouvé des postes connexes à Backbone.js restful json API design et Backbone.js & REST API resources relationship & interraction, entre autres. Cependant, ils manquent d'exemples des recommandations internes de la structure JSON. Backbone Fundamentals

Répondre

1

Je ne crois pas que Backbone.js ait une préférence dans un sens ou dans l'autre. La façon dont votre JSON est structuré vous appartient entièrement. Le premier exemple fonctionne bien si vous ne vous attendez pas à ce que les données de commentaire l'emportent sur le reste des données de la publication. Mais si vous faites quelque chose comme Reddit où le nombre de commentaires est plus que le nombre de caractères dans tout le corps du message, la structure relationnelle est beaucoup plus conviviale. Backbone.js ne se soucie pas de la façon dont vous structurez vos données, car il laisse l'analyse et le rendu des données entièrement à vous. Alors choisissez la structure qui correspond à vos besoins pour la tâche à accomplir.

Une chose que je changerais dans le premier exemple supprime l'emballage objet inutile « post »:

{ 
    "id": 404, 
    "title": "Hans shot first.", 
    "comments": [ 
     { 
     "id": 4041, 
     "body": "But not anymore!" 
     }, 
     { 
     "id": 4042, 
     "body": "Indeed he did." 
     } 
    ] 
} 
0

dans la structure centrale, actuellement je recommande d'utiliser un seul objet ou une collection d'objets. Pour l'exemple ci-dessus, je recommanderai d'aller chercher la publication et la collection de commentaires séparément. Si vous voulez utiliser le JSON mentionné ci-dessus, je pense que vous devriez utiliser backbone-relationnel (http://backbonerelational.org/) qui résout exactement le même problème.

Questions connexes