API Rest per supporto dual listbox

1

Sto cercando di capire quale dovrebbe essere la mia rotta API e il metodo HTTP per supportare una doppia casella di riepilogo (ad esempio link ) Dì, ho una collezione, GET /employees che assomiglia a:

[
  {'id': 1, 'name': 'Foo', 'selected': true},
  {'id': 2, 'name': 'Bar', 'selected': false}
]

dove Foo sarebbe nella lista a destra e Bar sarebbe a sinistra. Se l'azione di spostare gli elementi da sinistra a destra (o viceversa) nella casella doppia lista cambia solo il valore di 'selezionato', dovrei usare:

  • JSON PATCH (elementi che sono stati spostati) in /employees
  • POST (elementi nell'elenco di destra) a /employees/selected (GET / dipendenti / selezionati non esiste)
  • PATCH (elementi nell'elenco di destra) a /employees/selected
  • Qualche altro metodo e percorso?

Modifica: Nota, sono interessato agli aggiornamenti collettivi. Non voglio attivare una richiesta HTTP dopo ogni azione dell'utente.

    
posta user6946484 19.01.2018 - 07:14
fonte

1 risposta

0

Stai aggiornando la proprietà selected su una risorsa dipendente.

Quindi puoi:

PATCH /employees/:id con il valore corretto per selezionato se supporti PATCH

o, se non vuoi supportare PATCH

PUT /employees/:id con l'intero oggetto dipendente aggiornato.

Modifica

Se si desidera eseguire l'aggiornamento collettivo, si sta aggiornando la raccolta. /employees - piuttosto che una singola risorsa.

O PUT dell'intera raccolta con proprietà selected aggiornate, che è un po 'pesante,

Oppure PATCH la raccolta in questo modo:

 [
 {
     "op": "replace",
     "path": "/1/selected",
     "value": true
 },
 {
     "op": "replace",
     "path": "/2/selected",
    "value": true
 }
 ]
    
risposta data 19.01.2018 - 12:40
fonte

Leggi altre domande sui tag