REST-Ressourcen-IDs (numerisch oder als Zeichenfolge)?

Ich mache einige Nachforschungen, um eine REST-API zu entwickeln, und dies ist ein Thema, über das ich nirgendwo ausführlich gesprochen habe.

Wenn ich einen Benutzer im System habe, ist es besser, den Benutzer anhand eines numerischen Bezeichners zu identifizieren

/ users / 1

Oder mit einer Zeichenfolge-ID?

/ users / RSmith

Ich kann hypothetische potenzielle Vor- und Nachteile für jeden Ansatz erkennen, Zeichenfolgen-IDs sind besser lesbar, weniger auffindbar (können nicht erhöht werden, um gültige Benutzer zu finden) und müssen keine weiteren numerischen IDs in der Datenbank speichern (würde ich nicht) Datenbank-IDs über die API verfügbar machen möchten). Numerische Bezeichner haben keine inhärente Bedeutung und können daher garantiert unveränderlich sein, wohingegen der Benutzer mit einer Zeichenfolgen-ID die Ressource möglicherweise umbenennen und damit den Ressourcen-URI ändern möchte.

Gibt es hier eine REST-Best-Practice oder variiert der beste Ansatz von System zu System? Gibt es in letzterem Fall zusätzliche Vor- und Nachteile für jede Methode?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage