Как отправить запрос Yii2 RESTful GET и указать сортировку в качестве параметров
Я хочу отправить запрос GET v1/users
конечная точка, где в качестве параметров я хочу указать, что я хочу сделать упорядочение по priority DESC
а также status ASC
,
Как вы видите, я хочу отправить параметры, которые будут отображаться в части SQL WHERE:
SELECT * FROM table WHERE something ORDER BY priority DESC, status ASC
Как я должен указать в качестве параметров в моем HTTP-запросе, что я хочу эту сортировку? Я думаю, что для этого мне нужно отправить данные JSON в запросе POST. Но это проблема, потому что я хочу, чтобы запрос GET не POST. post/users
значит создать пользователя, и я хочу get
пользователи.
Я думаю, что я должен был бы отправить объект JSON, как это
"sort":[
{"priority":"DESC", "status":"ASC"}
]
Во-первых, возможно ли отправлять такие параметры при отправке запроса GET?
Во-вторых, как бы вы отправили эти параметры, используя cUrl в PHP?
1 ответ
С помощью встроенного RESTfull API вы можете использовать запятую для сортировки нескольких атрибутов и знак "-" для DESC:
GET v1/users?sort=-priority,status
Если вместо пользовательских встроенных функций используется пользовательское действие. Обязательно всегда возвращайте экземпляр поставщика данных, чтобы сериализатор мог генерировать связанную нумерацию страниц, и вышеперечисленные параметры поддерживаются:
// instead of: return $modelClass::find()->all();
return new ActiveDataProvider([
'query' => $modelClass::find(),
]);