È RESTFul per un endpoint senza parametro path avere sempre una singola risorsa come risultato?

1

Durante la creazione di strumenti per un'API, ho notato quanto segue all'interno della specifica API:

GET /cookie-orders

restituisce la seguente struttura come risultato 200:

{
 "first":true
 "last":false
 content:[
  {
   "id":0
   "customerName":test
    ...
  }
   ...
 ]
}

Trovo questo un po 'contraddittorio poiché penso che un endpoint di riposo senza parametri di percorso debba sempre avere il potenziale per restituire più risorse. A mio avviso, questo restituisce sempre una singola risorsa con più risorse al suo interno.

Sono nuovo di REST quindi non so se la mia vista su questo è corretta o meno.

La prima e l'ultima proprietà sono state aggiunte per l'impaginazione.

    
posta Viktor Baert 09.10.2018 - 15:05
fonte

2 risposte

2

I think that a rest endpoint without path params should always have the potential of returning multiple resources I'm new to REST so I don't know if my view on this is correct or not.

Non è corretto.

REST non interessa l'ortografia, in particolare non ha alcun problema per come (o se) il server di origine decompone un identificatore per trovare la mappatura alla risorsa corretta.

Tecnicamente parlando, ogni identificatore in REST si associa a una risorsa singola . La rappresentazione di quella singola risorsa può descrivere una collezione, ma la risorsa è la mappatura concettuale alla collezione.

Non esiste una regola REST che dice che URI particolari devono essere raccolte. Alcune convenzioni di routing faranno quelle affermazioni. Ad esempio, Rails ha opinioni forti sul significato della codifica nell'URI. Tuttavia, si può notare nell'esempio che /photos/new è un identificatore senza un parametro-path e restituisce una rappresentazione di un modulo, piuttosto che una rappresentazione di una raccolta.

    
risposta data 09.10.2018 - 20:38
fonte
2

Non considero il tuo esempio come una singola risorsa. Restituisce una serie di ordini più utili informazioni di paging. Questo è tipico delle operazioni che restituiscono più entità.

Sebbene non ci sia uno standard per le API REST, ci sono convenzioni generalmente accettate. In base alla mia esperienza, considererei questo uno di questi.

    
risposta data 09.10.2018 - 15:13
fonte

Leggi altre domande sui tag