2015-07-30 2 views
2

В настоящее время я работаю над проектом, который требует, чтобы я вызывал внешний API через HTTP, чтобы получить некоторые данные в форме JSON. Эти данные будут сохранены в шаблоне базы данных, определенном с помощью Eloquent ORM. Этот API требует аутентификации (через токен), а затем принимает вызовы с GET, POST не требуется. Параметры добавляются к URL-адресу (например, «origin = LHR & destination = GHA).Лучший способ реализовать внешний API в Laravel 5?

Я пытаюсь найти способ Laravel для доступа к таким данным легко - просто написать базовый класс, который имеет функцию со всеми параметрами, кажется неправильным. У меня бы скорее был какой-то построитель запросов, но для URL. Я посмотрел репозитории, но это, похоже, связано с вызовами базы данных.

Подводя итог: есть ли хороший способ «Laravel» для вызова внешнего API?

+2

https://github.com/guzzle/guzzle? – Muggles

+0

Я имел в виду, например, извлечение слоя данных из контроллера - я хочу где-то определить структуру API и выполнить всю обработку там (например, модель в Eloquent), и контроллер просто «получает» данные. –

+1

IMHO, написав простой класс, который отражает ваш удаленный API, более ясен для кого-то, читающего ваш код. Вы можете выделить все детали API (токен-аутентификация, создание URL-адресов, запросы и т. Д.) В классе, а затем проверить его, прежде чем интегрировать его в ваше приложение. – Kryten

ответ

0

Я уже что-то вроде этого всего несколько дней назад;

Моим решением было определить параметры массива GET. F.A.

get-some-stuff?where[foo]=bar&with[relation]&with[otherRelation] 

Тогда вы можете получить Params через Input::get() и пройти через них с Еогеаспом.

F.a.

foreach(Input::get() as $method => $value) { ... 

В Еогеасп вы могли бы решить, что делать на основе $method

+0

Отметив это как ответ, я закончил создание дополнительного класса, который предоставляет все необходимые функции и просто дал каждой функции параметр '$ options' array. –

Смежные вопросы