Modellazione degli endpoint REST con dati a cui non tutti gli utenti hanno accesso

3

Sto cercando di capire il modo migliore per risolvere un piccolo problema che ho con un progetto per un'API Hypermedia attualmente in costruzione.

Ho un'idea di un sito, molto semplice non ha molto in corso ed è accessibile tramite:

  • / siti
  • / sites / {id}

I siti hanno un sacco di proprietà e nessuno è troppo sensibile. Tuttavia, un sito ha la nozione di un budget, non è niente di troppo esotico, infatti per l'offset sarà un oggetto semplice che contiene un campo decimale e un puntatore a una valuta, ma questo non dovrebbe essere visibile a chiunque ne faccia richiesta risorsa in quanto è considerata un'informazione sensibile che i project manager dovrebbero avere.

Alcune opzioni:

  1. L'ho appena inviato - il problema qui è che non so cosa faranno i client che usano l'API e questa è solo un'opzione terribile a tutto tondo
  2. Invia un oggetto vuoto, ad esempio Budget:{}
  3. Crea Budget una sotto-risorsa di Site e concedi agli utenti solo l'accesso al livello di accesso appropriato

Poiché si tratta di un'API ipermedia, mi sto orientando verso l'opzione 3, come potrei (o meno) a seconda del caso, a fornire il collegamento e anche a proteggere quell'endpoint separatamente, ma allo stesso tempo si sente un po 'sbagliato, non certo perché.

L'elemento 3 potrebbe assomigliare a questo:

  • / siti / {id} / bilancio

Qualcuno là fuori con qualche consiglio utile su qualcosa di simile?

    
posta Roberto Modica 15.08.2013 - 12:10
fonte

1 risposta

2

Tratta come una sotto-risorsa

La tua API REST dovrebbe essere disaccoppiata dal modello di dominio interno. Pertanto è possibile fornire un'immagine limitata dello stato del dominio interno tramite l'API REST. Questa è una delle caratteristiche principali di REST.

Per riuscirci, potresti voler esaminare la rappresentazione Hypertext Application Language (HAL) .

    
risposta data 15.08.2013 - 16:26
fonte

Leggi altre domande sui tag