Je suis assez nouveau pour me reposer mais aussi loin que moi, je comprends que l'URL suivante est conforme aux principes de repos. Lorsque les ressources sont définies comme suit: Cependant, comment optimiser cet exemple API? Dites par exemple, j'ai 10k livres dans ma bibliothèque et je veux chercher les détails de chaque livre de ma bibliothèque. Devrais-je vraiment forcer un appel http à Que dit les principes de repos à propos de ce genre de situation? Et quels sont vos opinions? p> Merci encore. P> p> / bibliothèque / book /
/ bibliothèque / book code>? Ou devrais-je activer plusieurs identifiants comme paramètres?
/ bibliothèque / book /
4 Réponses :
Ceci est strictement une matière de design.
Je pourrais définir une ressource code> code> et l'utiliser comme ceci: p> Comment Spécifiez également la liste code> L'argument code> est vraiment une question de quel type d'utilisation vous envisagez de cette ressource. Vous auriez pu, par exemple: p> ou vous pouvez simplement utiliser tous les livres: p> mais dans mon L'esprit, en particulier la forme avec une longue liste d'identifiants "aléatoires", semble assez inapte. Peut-être que je définirais plutôt un paramètre code> filtre code> afin que je puisse spécifier: p> sur votre question sur la limite de longueur d'URL HTTP, la norme ne se définit pas tout. Mais le navigateur peut varier ... Regardez ce S.o. Sujet P> J'espère que cela vous semble approprié ... p> p> Pour être plus strictement reposant, le paramètre de requête pourrait être spécifié via des en-têtes HTTP, mais l'idée générale que je voulais transmettre ne change pas. del> p >
Vérifiez aussi ce s.o. Sujet: Stackoverflow. com / questions / 306271 / ...
Comment allez-vous formater l'identifiant? séparées par des virgules? Et quelle est la limite sur la quantité de données que vous pouvez mettre sur une chaîne de requête? Serait-ce mieux (autorisé?) Utiliser à la place des paramètres post et post?
J'éviterais spécifier le paramètre de requête dans une en-tête HTTP car cela signifierait (a) que vous pourriez avoir plusieurs requêtes complètement différentes, mais qui partagent la même URI, et (b), il supprimerait la capacité des proxies intermédiaires de la requête de cache résultats pour améliorer les performances.
Je préférerais utiliser les URL suivantes pour vos ressources / utilisateurs / Dave / livres /
Ceci est juste mon avis:
ci-dessus a l'air bien, mais je changerais de noms pluriels, il se lit mieux: Ce que je ne comprends pas est l'utilisation-cas de la liste des identifiants séparés par des virgules. La question est de savoir comment vous arrivez aux identifiants? Je suppose que derrière la liste des identifiants il y a une sémantique, c'est-à-dire qu'ils représentent le résultat d'un filtre. Donc, au lieu de passer des identifiants, j'irais pour une API de recherche. Exemple simpliste: p> Si vous souhaitez itérer via votre collection de livres 10K, utilisez Paramètres de pagination . p> p>
Quelque travail de l'API reposant avec un paginateur pour d'énormes ressources telles que: P>
http://example.org/books?id=[]2&id=[]5&id=[]7&id=[]21
Le reste n'a aucune opinion sur ce que vos URL ressemblent. Cependant, ce document a un tas de suggestions Outils.ief.org/html/draft- GREGORIO-URITEMPLET-04
Consultez ceci pour comprendre certaines des bonnes pratiques de conception de Saipraveenblog.wordpress.com/2014/09/29/REST-API-BEST-PRACTI-CES