REST API, переменная пути и параметр запроса

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

У меня есть следующий uris:

  • /myservice/users/: чтобы получить всех пользователей
  • /myservice/users/{userId}: чтобы получить определенного пользователя
  • /myservice /badges/: чтобы получить все значки
  • /myservice/badges/{badgeId}: чтобы получить определенный значок

Теперь моя проблема в том, что я должен реализовать способ получить всех пользователей которые имеют определенный значок. Я могу считать, что это просто фильтр, который я применяю к списку пользователей, поэтому следующий uri:

  • /myservice/users/?filter=badge:{badgeId}

Или я могу считать, что это просто подресурсы значка, следовательно, следующий uri:

  • /myservice/badges/{badgeId}/users/

Какой из них должен быть «REST-совместимым»?

Должен сказать, что я читал несколько постов на эту тему, в частности этот: Остальные стандарты: параметры пути или параметры запроса, но они, похоже, не охватывают мою проблему.

9
задан Community 23 May 2017 в 00:30
поделиться