REST числовые или строковые идентификаторы ресурсов?

Я провожу некоторые исследования, чтобы помочь мне разработать REST API, и это одна из тем, которые я не видел, где-либо подробно обсуждался.

Если у меня есть пользователь в системе, лучше ли идентифицировать пользователя с помощью числового идентификатора

/users/1

Или используя строковый идентификатор?

/users/RSmith

Я вижу гипотетические потенциальные плюсы и минусы каждого подхода, строковые идентификаторы более удобочитаемы, менее обнаружимы (не могут быть увеличены для поиска действительных пользователей) и не требуют сохранения другого числового идентификатора в базе данных (я бы не стал) хотите выставить идентификаторы базы данных через API). Числовые идентификаторы не имеют внутреннего значения и поэтому могут быть гарантированно неизменными, тогда как с помощью строкового идентификатора пользователь может захотеть переименовать ресурс, тем самым изменив URI ресурса.

Есть ли здесь передовая практика REST или лучший подход зависит от системы к системе? Если последнее, есть ли дополнительные плюсы и минусы, связанные с каждым методом?

Ответы на вопрос(2)

Ваш ответ на вопрос