Служба отдыха Apigility - как фильтровать по неуникальному столбцу, используя подключенную базу данных

У меня подключен дб rest сервис, и мне только удалось получить полную коллекцию от database или единое целое ID,

Я не могу найти правильное руководство, чтобы объяснить, как использовать GET параметры URL для фильтрации по другим полям, и как мне выбрать, например, "LIKE" или LIKE %%"или другие операторы по этому вопросу.

1 ответ

Решение

Это мой опыт работы с CodeConnected Services. YMMV..

Получение параметров URL - класс Controller/Resource.

Ваш контроллер должен получить их из $this->getEvent()

 /**
 * Fetch a single Entity by ID, with some Query Params
 */
public function fetch($entity_id)
{
    // retrieve the query parameters\
    $queryParams = $this->getEvent()->getQueryParams();
}

Во-вторых, только параметры, одобренные в вашем module.config.php, пройдут через часть валидатора / фильтра Apigility. Белый список запросов коллекции уведомлений

module.config.php внутри папки модуля вашего сервиса

'ServiceName\\V1\\Rest\\ServiceName\\Controller' => array(
            ...
            'entity_http_methods' => array(
                0 => 'GET',
                1 => 'PATCH',
                2 => 'PUT',
                3 => 'DELETE',
            ),
            'collection_http_methods' => array(
                0 => 'GET',
                1 => 'POST',
            ),
            'collection_query_whitelist' => array(
                0 => 'username',
                1 => 'entity_provider',
                2 => 'entity_type',
                3 => 'entity_date_range',
                4 => 'sort_by',
                5 => 'sort_order'
            ),
            ...
Другие вопросы по тегам