Domanda

Il mio design espone due tipi di risorse:

  1. Immagini

Vorrei che i clienti potessero richiedere immagini casuali con i loro tag. Ad esempio: Dammi immagini casuali che sono taggate con " New York " e "Inverno". Come sarebbe un design RESTful in questo caso?

È stato utile?

Soluzione

Per riassumere tutta la discussione nei commenti e non cambiare la mia proposta iniziale, questo è quello che vorrei fare finalmente:

Desideri accedere alle immagini tramite tag; ogni tag si riferisce a una serie di immagini. Dato che un determinato tag può essere usato molto più di un altro (diciamo, le foto di New York hanno usato molto più di quelle di Chicago), dovresti usare una configurazione RESTful che consenta la memorizzazione nella cache, così puoi memorizzare nella cache le foto di New York. IMHO, la soluzione sarebbe:

Quindi hai un URI fisso per ogni immagine, un URI fisso per ogni tag e il relativo set di foto e un URI fisso per un dispatcher casuale che ha ogni tag. Non è necessario utilizzare alcun parametro GET come altre potenziali soluzioni, quindi è RESTful il più possibile.

Altri suggerimenti

Ho lottato con questo problema. Ciò che abbiamo finito per implementare era un HttpResponseRedirect, ad esempio:

http://www.example.com/randomNewYorkImage

a un'immagine casuale di New York:

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

La prima risorsa può essere concepita come un dispatcher di immagini casuale di New York. Questa soluzione caricherà di più il server, poiché verranno richieste due risorse, ma è RESTful il più possibile.

Modificato: Inoltre, se stai memorizzando nella cache, ogni immagine sarà nella cache e il tuo server passerà dall'invio di un'immagine all'invio del solo reindirizzamento, poiché la cache intercetterà la seconda richiesta e alleviando così il carico del server.

L'identificazione delle risorse multidimensionali è impegnativa.

La tua risorsa è un'immagine, quindi questo è il tuo URI. Inoltre, un'immagine specifica ha un URI specifico che non cambia mai.

Il tuo " per tag " è un attributo non identificativo della risorsa. Per questo, una stringa di query può essere d'aiuto.

Ecco il mio primo pensiero.

  • http://www.example.com/MyStuff/image/id / - immagine specifica per ID
  • http://www.example.com/MyStuff/image/?tag= tagname - immagine casuale con un determinato tag, implicitamente, count = 1 .
  • http://www.example.com/MyStuff/image/?tag=tagname & amp; count = all - all immagini con un determinato tag in un ordine casuale ( count = 1 è l'impostazione predefinita, che ti darebbe un'immagine arbitraria)

Farei qualcosa come http://foo.com/image/tagged/sometag/random e smetterei di perdere il sonno.

Sono d'accordo con Triptych su questo. In un certo senso l'aggiunta casuale alla fine dell'URI lo fa sembrare un'operazione, ma se è mirato a un tag, stai semplicemente perfezionando il contesto.

Nel suo esempio di:

/ immagine / tag / sometag / random

risorsa immagini - > ambito di tagging (tutte le immagini con tag) - > tag specifico (tutte le immagini con tag X) - > random (una risorsa dall'elenco di immagini con ambito con tag X)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top