Для сайта, над которым я работаю, мы находимся в процессе улучшения наших URL-адресов для одного типа ресурсов, в частности, переходя от числовых идентификаторов к уникальным описательным строкам. Аналогичным примером может быть переключение с идентификации пользователей по числовому идентификатору базы данных на идентификацию их по имени пользователя (не наш конкретный случай, а аналогичный). Таким образом, URL-адрес для доступа к информации пользователя выглядел так:
/users/48573
А теперь похоже
/users/thisisausername.
Единственная проблема заключается в том, что нам все еще нужно каким-то образом получить их через числовые идентификаторы для устаревших потребителей API. Нам не нужны сами URL-адреса REST для перенаправления (например, /users/48573
не должен перенаправлять на /users/thisisausername
), нам просто нужен метод для получения правильных данных с использованием старого идентификатора. Решение должно либо предоставлять альтернативный способ доступа к информации о пользователе (который удобно включает новый идентификатор, имя пользователя) по идентификатору, либо доступ только к имени пользователя по идентификатору. Некоторые возможные решения могут быть:
- Использование узла для указания альтернативного метода идентификации, например.
/users/byid/48573
- Использование параметра запроса для указания альтернативного метода идентификации, например.
/users/48573?fetchby=id
или/users/48573?byid=true
- Обработка имени пользователя по идентификатору как другого ресурса, например.
/identifiers/username/48573
Какой из них (если есть) ближе всего к правильному REST? Как бы вы справились с проблемой?