Задать вопрос
@TheSameSon

Алгоритм взаимодействия со сторонними сервисами через модели или пакеты?

Приложение на laravel принимает строку в GET/POST запросе. Затем ищет информацию по этой строке с помощью обращения к сторонним сайтам через API (пример подобного приложения: aviasales.ru и похожие сервисы).
Количество сайтов, к которым нужно обращаться, заранее неизвестно, API у всех разное. Вопрос в том, как в laravel организовать хранение классов для взаимодействия с API каждого сайта.
Хочется в контроллере иметь возможность обращаться к сайтам следующим образом:
$keyword = Input::get('keyword');

$results = array();

$APIs = someFunctionToGetAPIs();

foreach ($APIs as $API) {
	$results[] = $API->get($keyword);
}


Т.е. someFunctionToGetAPIs() должна возвращать экземпляры всех классов API.
Вариант, который первым приходит в голову: использовать модели без Eloquent, положить их в одну папку и в someFunctionToGetAPIs() пройтись по всем файлам папки и собрать объекты в массив. Или вместо моделей лучше использовать пакеты? Как в таком случае описать someFunctionToGetAPIs()?
  • Вопрос задан
  • 442 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
AmdY
@AmdY
PHP и прочие вебштучки
Обычная factory, апишки выносишь в конфиг
foreach (Config::get('api.list') as $apiName) {
  $results[$apiName] = Api::create($apiName)->get($keyword);
}
Ответ написан
Комментировать
@alexey66
Товарищи, господа, есть аналогичная задача. Кто возьмется и поможет в реализации? Нужно искать товары по нескольким сторонним Api, фильтровать и отдавать на вывод.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы