Question

Ma conception expose deux types de ressources:

  1. Images
  2. Tags

Je souhaite que les clients puissent demander des images aléatoires à l'aide de leurs balises. Par exemple: Donnez-moi des images aléatoires étiquetées avec "New York". et "hiver". À quoi ressemblerait un design RESTful dans ce cas?

Était-ce utile?

La solution

Pour résumer toute la discussion dans les commentaires, et pour ne pas changer ma proposition initiale, voici ce que je reviendrais finalement:

Vous souhaitez accéder aux images via des balises; chaque balise concerne un ensemble d'images. Comme une balise donnée peut être utilisée beaucoup plus qu'une autre (par exemple, les photos de New York en ont utilisé beaucoup plus que celles de Chicago), vous devez utiliser une configuration RESTful qui permet la mise en cache afin de pouvoir mettre en cache les photos de New York. IMHO, la solution serait:

Vous avez donc un URI fixe pour chaque image, un URI fixe pour chaque balise et son ensemble de photos associé, et un URI fixe pour un répartiteur aléatoire de chaque balise. Vous n’avez pas besoin d’utiliser de paramètres GET comme d’autres solutions potentielles. C’est donc aussi RESTful que possible.

Autres conseils

Je me suis battu avec ce problème. Nous avons finalement implémenté un fichier HttpResponseRedirect, par exemple:

http://www.example.com/randomNewYorkImage

vers une image aléatoire de New York:

http://www.example.com/images/New_York/1234 .

La première ressource peut être conçue comme un répartiteur d’images aléatoires à New York. Cette solution chargera davantage le serveur car deux ressources seront demandées, mais elles sont aussi RESTful que possible.

Modifié: de plus, si vous mettez en cache, chaque image sera dans le cache et votre serveur passera d’envoyer une image à envoyer uniquement la redirection, car le cache interceptera la deuxième requête et allégera ainsi la charge de votre serveur.

L'identification multidimensionnelle des ressources est un défi.

Votre ressource est une image, c'est donc votre URI. De plus, une image spécifique a un URI spécifique qui ne change jamais.

Votre " par tag " est un attribut non identifiant de la ressource. Pour cela, une chaîne de requête peut être bloquée.

Voici ma première pensée.

  • http://www.example.com/MyStuff/image/ id / - image spécifique par id
  • http://www.example.com/MyStuff/image/?tag= tagname - image aléatoire avec une balise donnée, implicitement, count = 1 .
  • http://www.example.com/MyStuff/image/?tag= tagname & amp; count = all - tous images avec une balise donnée dans un ordre aléatoire ( count = 1 est la valeur par défaut, ce qui vous donnerait une image arbitraire)

Je ferais quelque chose comme http://foo.com/image/tagged/sometag/random et arrêterais de perdre le sommeil à cause de cela.

Je suis d'accord avec Triptych sur celui-ci. D'une certaine manière, ajouter un caractère aléatoire à la fin de l'URI donne l'impression d'être une opération, mais s'il s'agit d'une balise, vous affinez simplement le contexte.

Dans son exemple de:

/ image / tagged / sometag / random

ressource images - > portée de marquage (toutes les images avec des balises) - > balise spécifique (toutes les images avec la balise X) - > random (une ressource de la liste étendue d'images avec la balise X)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top