Ricorda che gli URI sono identificatori . Non devono necessariamente fornire agli sviluppatori i dettagli di implementazione del lato server.
Dal punto di vista del consumatore dell'API, la gerarchia o la relazione tra utente e commenti dovrebbero essere espliciti nella rappresentazione delle risorse, non negli identificatori delle risorse.
Se consideri l'intera raccolta di commenti come una risorsa, quindi fornisci la risorsa con un URI, indipendentemente dal modo in cui la risorsa viene modellata sul lato server.
L'URI /comments
è perfettamente valido. E sii piuttosto perché l'API continuerà a essere REST.
Condividerò qui alcuni collegamenti che potrebbero aiutarti a esaminare il problema da un altro punto di vista.
(Un po 'vecchio, ma ancora valido)
Axiom: Opacity of URIs
The only thing you can use an identifier for is to refer to an object.
When you are not dereferencing, you should not look at the contents of
the URI string to gain other information.
For the bulk of Web use URIs are passed around without anyone looking
at their internal contents, the content of the string itself. This is
known as the opacity. Software should be made to treat URIs as
generally as possible, to allow the most reuse of existing or future
schemes.
Questo assioma non è cambiato nel corso degli anni.
Punto di vista del consumatore
1.2.3. Hierarchical Identifiers
The URI syntax is organized hierarchically, with components listed
in order of decreasing significance from left to right. For some
URI schemes, the visible hierarchy is limited to the scheme itself:
everything after the scheme component delimiter (":") is considered
opaque to URI processing. Other URI schemes make the hierarchy
explicit and visible to generic parsing algorithms.
Punto di vista dello sviluppatore
1.2. Design Considerations
1.2.1. Transcription
[...]
A URI often has to be remembered by people, and it is easier for
people to remember a URI when it consists of meaningful or
familiar components.
Mentre l'URI è opaco per il consumatore, non è necessariamente opaco per l'umano. Quindi possiamo ancora rendere leggibili gli URI non appena condiziona il sistema. Ultimatelly, i requisiti hanno l'ultima parola.