Domanda

I 'm davvero un periodo difficile con il paradigma RESTful + gli URL nidificate. Ho chiesto una domanda che mi ha portato a dove mi trovo in questo momento qui . Il mio dominio è più o meno questo: ci sono scuole, corsi di una scuola e gli insegnanti delle scuole. Ora le scuole, corsi e insegnanti non sono entità "annidati", nel senso che è possibile fare riferimento a qualsiasi di loro con una Id. Il sito è una raccolta di "micro-siti" per ogni scuola che mostra i corsi di ciascuno e gli insegnanti. Un corso o un insegnante può esistere solo in una scuola.

dire che abbiamo un URL del tipo / scuole / 1 / corsi / 10. Corso 10 della scuola 1. Questo funziona bene. Dire che l'utente cambia di mano 10 in 11, che risulta esistere, ma è un corso della scuola 2. Proprio ora che porta a un disastro, il mio sito ancora "pensa" l'utente è a scuola 1, ma mostra corso 3 come parte di esso.

Devo fare dettaglio-azioni parametriche sia per l'Id essere chiesto e l'entità "padre" (la scuola in questo caso) che coinvolto? Fetch dai repository non solo per ID, ma con un vincolo di scuola?

O c'è un modo migliore per fare questo?

È stato utile?

Soluzione

Il modo in cui vorrei pensarci è questo; anche se ci può essere un corso di 11 nel vostro servizio, non v'è alcuna risorsa che esiste al Uri / scuole / 1 / corsi / 11. Poiché non v'è alcuna risorsa a questo URI, vorrei tornare una risposta HTTP 404 alle richieste per l'URI.

Un modo si può migliorare il servizio potrebbe essere quella di sostituire i valori interi ID con i nomi delle entità (questo richiederebbe i nomi siano univoci). Questo renderebbe i tuoi URI più user friendly. Un esempio potrebbe essere / scuole / Hogwarts / corsi / Pozioni.

Per migliorare ulteriormente il servizio, ti consigliamo di dare agli utenti un modo per navigare attraverso il servizio a tutte le diverse risorse disponibili. Per esempio probabilmente si vorrà per consentire loro ottenere un elenco di tutti i corsi da una certa scuola. Per fare questo ci si espone una risorsa a / scuole / Hogwarts / corsi / il cui tipo di ritorno sarebbe un elenco di tutti i corsi offerti dalla scuola. La rappresentazione di questo elenco potrebbe essere un documento XML come il seguente frammento di codice:

<courses>
    <course uri="/schools/hogwarts/courses/defense+against+the+dark+arts">Defense against the dark arts</course>
    <course uri="/schools/hogwarts/courses/potions">Potions</course>
</courses>

Altri suggerimenti

  

Devo fare dettaglio-azioni   parametrico sia per l'Id viene chiesto   per e l'entità "padre" (il   scuola in questo caso) che ha coinvolto?   Fetch dai repository non solo per id   ma con un vincolo di scuola?

Sì.

Or is there any better way to do this?

Niente di sbagliato in quello che hai descritto sopra.

Si potrebbe fare con un catch-all percorso, e quindi l'analisi degli elementi url da soli.

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