2017-01-04 8 views
3

В инфраструктуре Vapor для серверной части swift я хотел бы ответить на запрос с информацией, полученной от стороннего API. Например, я получаю запрос на получение запроса о температуре в городе, и я хочу подключиться к yahoo, если API получит температуру, а затем отправит ее обратно. Нужно ли загружать такие пакеты, как Alamofire? Или есть встроенный способ сделать это в Vapor?Как сделать запросы для подключения к сторонним API в Vapor?

+0

Пожалуйста, добавьте дополнительные данные. Ваш вопрос непонятен. –

+0

@NileshSingh привет, прошу прощения за непонятный вопрос. Я обновил вопрос. Надеюсь, что это поможет – naif

+0

@naif в вашем [следующем вопросе] (http://stackoverflow.com/q/41513191/284120), вы, кажется, используете 'drop.client'. В StackOverflow, если ответ вам поможет, рекомендуется отметить его «принято» с помощью кнопки отметки. – tobygriffin

ответ

5

В Vapor встроен HTTP-клиент; он называется Client.

Чтобы сделать GET запрос на свой API третьей стороны:

let apiResponse = try drop.client.get("https://api.com") 

Вы можете передать свои параметры запроса в строке запроса, или используя удобный метод словаря:

let apiResponse = try drop.client.get("https://api.com", query: ["q": queryString]) 

Client также поддерживает POST или любым другим методом HTTP.

+0

Будет ли какая-то реализация обещаний, так как немедленного ответа нет? –

+0

@DylanReich 'drop.client' возвращает синхронно. Если вы комбинируете данные из двух или более удаленных API, то вы хотите использовать Promises (или просто GCD) для параллельного запуска запросов и возврата вместе. – tobygriffin

+0

Прохладный, спасибо! –