Numeryczne lub łańcuchowe identyfikatory zasobów REST?

Prowadzę badania, które pomogą mi opracować REST API i jest to jeden z tematów, których nie widziałem dogłębnie w żadnym innym miejscu.

Jeśli mam użytkownika w systemie, czy lepiej jest zidentyfikować użytkownika za pomocą identyfikatora numerycznego

/ users / 1

Lub używając identyfikatora łańcucha?

/ users / RSmith

Mogę zobaczyć hipotetyczne potencjalne wady i zalety każdego podejścia, identyfikatory łańcuchów są bardziej czytelne dla ludzi, mniej wykrywalne (nie można ich zwiększyć w celu znalezienia ważnych użytkowników) i nie wymagają przechowywania innego identyfikatora numerycznego w bazie danych (nie chciałbym chcesz ujawnić identyfikatory bazy danych za pośrednictwem interfejsu API). Identyfikatory numeryczne nie mają właściwego znaczenia i dlatego mogą być zagwarantowane, że będą niezmienne, podczas gdy w przypadku łańcucha id użytkownik może chcieć zmienić nazwę zasobu, zmieniając w ten sposób URI zasobów.

Czy jest tu najlepsza praktyka REST lub czy najlepsze podejście różni się w zależności od systemu? Jeśli to drugie, czy są jakieś dodatkowe plusy i minusy związane z każdą metodą?

questionAnswers(2)

yourAnswerToTheQuestion