2014-11-18 13 views
0

Когда после REST подход, который из следующих запросов GET является более правильным:REST: GET фильтрование конвенции

v1/companies/10/employees/state=approved 

v1/companies/10/employees?state=approved 

Там, кажется, смешанного использования в Интернете.

ответ

1

Только второй подход имеет смысл для меня. В подходе RESTful вам нужно использовать QueryString для фильтрации возвращаемых ресурсов. В этом случае добавьте в свой querystring атрибуты ресурсов, которые вы хотите использовать в качестве фильтров. Например:

v1/companies/10/employees?state=approved&attribute2=value&attribute3=value 

Первый URI не имеет никакого смысла для меня, потому что вы делаете соединение между URI и QueryString для фильтрации результата.

v1/companies/10/employees/state=approved 

Чтобы уточнить, давайте рассмотрим другой пример. URI ниже имеет смысл только в том случае, если «состояние» и «одобренное» являются ресурсами. Но если они только атрибуты от сотрудника, то это не RESTful. Помните, создайте свои URI, считая, что вы подвергаете ресурсы, а не методы или действия.

v1/companies/10/employees/state/approved 
0

Я думаю, что это зависит скорее от состояния, это ресурс или нет. REST конвенции являются Controller/Resource/Sub -Resource, например: Книги/Комиксы/SuperMan/FirstEditon, а не Книги/Комиксы/SuperMan издание = FirstEdition

Более читаемый, и указывает на то, что FirstEdition является ресурсом, а не Штат.