Как отправить запрос 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(),
]);
Другие вопросы по тегам