Я думаю, вы запутались, потому что ваши определения немного запутаны.
Вот хорошие новости: REST не заботится о правилах написания, которые вы используете для своих идентификаторов. Так что, если вам будет проще иметь
GET /users/12345/tasks
GET /me/tasks
, тогда вы можете реализовать оба из них, убедитесь, что ограничения доступа верны, и вы go.
Нет ничего неправильно, с точки зрения REST, об использовании
GET /users/12345/tasks
GET /users/me/tasks
Написание target-uri отличается, что означает, что с точки зрения клиента общего назначения они идентифицируют разные ресурсы.
НО ... реализация маршрутизации , которую вы используете для реализации своего API, может не позволить вам легко различить guish эти два случая. Фактически у вас есть два разных совпадения с одним и тем же шаблоном, что требует некоторого дополнительного ума, чтобы устранить двусмысленность; если ваша библиотека / фреймворк маршрутизации не предлагает этого, вам придется прокладывать его в себе. может соответствовать реальному идентификатору.
REST не имеет понятия «базовый ресурс» - по крайней мере, тот, который не соответствует тому, о чем вы думаете. С точки зрения REST, нет никакой внутренней связи между /users
и /users/12345
. Многие серверные структуры рассматривают обработку запросов как иерархию «ресурсов», но опять же: это деталь реализации вашего конкретного сервера.
REST действительно заботится только о вашем интерфейсе - вы понимаете HTTP-запросы стандартным способом .
Все это возвращает нас к хорошим новостям; так как REST не заботится о том, какие правила написания вы используете, вы можете сделать любой произвольный выбор, который вам нравится ... включая любое соглашение об орфографии, которое упрощает работу с вашей внутренней структурой маршрутизации.
* 1026 говорит вам создать другой «исходный базовый ресурс» для поддержки вашего семейства конечных точек «я», а затем просто сделайте это.