Какие оптимизированные методы существуют для интерпретации строк запроса REST API в Cake PHP 3? - PullRequest
1 голос
/ 28 мая 2020

В настоящее время я создаю REST API на основе CRUD из существующего приложения Cake PHP 3.8 и работаю над уточнением результатов для моих конечных точек CRUD. Я вижу, что строки запроса - это RESTful-способ сделать это в ансерах, таких как этот , например, используя такие запросы для поиска цвета, типа и дверей на ресурсе автомобилей:

/cars?color=blue&type=sedan&doors=4

Я мог бы жестко закодировать что-то вроде следующего псевдокода:

// Binding would be used to handle sql injection in actual code, but this demonstrates my point
$getParameters = $this->request->getQuery();

$query = $this->CarsTable->find('all');

if(array_key_exists('color', $getParameters) {
    $query->andwhere(['Cars.color like' => $getParameters['color']]));  
} 

if(array_key_exists('type', $getParameters) {
    $query->andwhere(['Cars.type like' => $getParameters['type']]));  
} 

if(array_key_exists('doors', $getParameters) {
    $query->andwhere(['Cars.doors' => $getParameters['doors']]));  
} 

Но у меня есть много сложных объектов, которые я собираюсь охватить, и кажется, что там был бы более рациональный подход для как справиться с этим?

Мне интересно, какой будет наиболее идеальный (или, по крайней мере, более идеальный) метод решения этой проблемы при построении запросов / интеграции CakeORM? Или есть хороший плагин для оптимизации таких запросов в Cake PHP?

Я смотрел FriendsOfCake / search , который, как я знаю, является инструментом поиска. Но похоже, что он может поддерживать тот тип функциональности, на который я смотрю.

Хотя, если есть что-то более специфичное для преобразования строк запроса в запросы Cake orm, я бы узнал, что это за инструмент?

Заранее спасибо за помощь!

...