2010-03-31 14 views
0

En ce qui concerne my previous question sur URI REST pour récupérer des informations statistiques pour une ressource de forum Web, je veux savoir s'il est possible d'utiliser les ancres internes comme indicateurs de filtre. Voir exemple ci-dessous:Est-il sensé d'utiliser des ancres internes pour filtrer la représentation d'une API REST?

a) Obtenez toutes les statistiques:

GET /group/5t7yu8i9io0op/stat 
{ 
    group_id: "5t7yu8i9io0op", 
    top_ranking_users: { 
     [ { user: "george", posts: 789, rank: 1 }, 
     { user: "joel", posts: 560, rank: 2 } ...] 
     }, 
    popular_topics: { 
     [ ... ] 
    }, 
    new_topics: { 
     [ ... ] 
    } 
} 

b) GET seulement des sujets populaires

GET /group/5t7yu8i9io0op/stat#popular_topics 
{ 
    group_id: "5t7yu8i9io0op", 
    popular_topics: { 
     [ ... ] 
    } 
} 

c) Les utilisateurs obtiennent uniquement top classement

GET /group/5t7yu8i9io0op/stat#top_ranking_users 
{ 
    group_id: "5t7yu8i9io0op", 
    top_ranking_users: { 
     [ { user: "george", posts: 789, rank: 1 }, 
     { user: "joel", posts: 560, rank: 2 } ...] 
    } 
} 

Ou devrais J'utilise des paramètres de requête?

Répondre

2

Je ne sais pas ce que vous essayez de faire exactement, mais assurez-vous de comprendre que les identifiants de fragments ne sont pas vus par le serveur, ils sont coupés par le connecteur client.

Voir: http://www.nordsc.com/blog/?p=17

0

Je n'ai jamais vu les ancres utilisées de cette façon - c'est intéressant. Cela étant dit, je suggère d'utiliser des paramètres de requête pour deux raisons:

  1. Ils sont standard - et les consommateurs de votre api seront à l'aise avec eux. Il n'y a rien de plus agaçant que de traiter une api bizarre.

  2. De nombreux frameworks analysent automatiquement les paramètres de requête et les définissent dans un dictionnaire sur l'objet de requête (ou l'équivalent existant dans votre bibliothèque de serveur framework/http).

0

Je pense qu'il serait plus logique d'avoir:

/group/5t7yu8i9io0op/stat/top_users 
/group/5t7yu8i9io0op/stat/popular_topics 
/group/5t7yu8i9io0op/stat/new_topics 
/group/5t7yu8i9io0op/stat/user/george 
0

Non, vous ne pouvez pas le faire parce que Jan souligne le serveur ne verra jamais cet identifiant de fragment. Littéralement, cette partie de l'URL n'atteindra pas le serveur.