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