Нет жестких связанных правил, это вопрос выбора и вариантов использования, которые решают, как мы структурируем наши остальные uris, а использование параметров запроса или переменных пути предназначено для создания значимых и читаемых uris.
Предположим, если у вас есть. это похоже на то, чтобы получить список учетных записей, требующий идентификатора клиента как обязательного, затем создайте:
GET / clients / {id} / accounts и поместите его в контроллер клиентов.
Но если ваш вариант использования например, идентификатор клиента не является обязательным для получения списка учетных записей, затем создайте: GET / accounts? clientid = 1 и поместите его в контроллер учетных записей. Теперь вы можете сделать clientid as required = false request param.
Не создавайте глубоко вложенные API ... сделайте немые конечные точки, в конечном итоге вы столкнетесь с вариантами использования, в которых вам нужно будет создавать не вложенные uris .