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

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

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

/users/1

или с помощью строкового идентификатора?

/users/RSmith

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

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

6
задан James McMahon 5 June 2012 в 21:24
поделиться