Как насчет?
GET /Companies?ticker=MSFT
GET /Companies?country=USA
GET /Companies?country=USA&industry=software
Важно определить ресурс. Ресурс - это «список компаний». Его тип носителя может быть списком Atom или только HTML-документом с использованием тегов UL LI. Параметры запроса влияют на содержимое списка, но концептуально он по-прежнему является «списком компаний».
Вы можете создать отличный ресурс, такой как
GET /Companies/USA
но сделать вам действительно нужно. Собираетесь ли вы отправляться в/Компании/США? Собираетесь ли вы удалить/Компании/США? Если ваше приложение не требует возможности выполнять дополнительные операции над этими конкретными наборами компаний, то зачем их моделировать в качестве отдельных ресурсов?
В качестве дополнительной заметки к этой дискуссии я хотел бы более четко различать, когда я обращаюсь к ресурсу, который представляет собой единую сущность и список. т.е.
GET /Companies/USA
GET /Company/MSFT
Я понимаю, что это не так, как некоторые из популярных фреймворков работать, но я нашел его полезным различие.
Мы хотели бы выполнять операции на уровне компании. Т.е.:/компании/msft –
См. Мое обновление. Я нахожу url/Companies/msft вводящим в заблуждение. Возвращает ли он список компаний, у которых есть тикер msft? или он возвращает представление ресурса компании? В любом случае, это мое предпочтение. Именование url примерно так же значимо для REST, как именование классов для объектно-ориентированного программирования. –
Получил. Согласен. –