В инфраструктуре Vapor для серверной части swift я хотел бы ответить на запрос с информацией, полученной от стороннего API. Например, я получаю запрос на получение запроса о температуре в городе, и я хочу подключиться к yahoo, если API получит температуру, а затем отправит ее обратно. Нужно ли загружать такие пакеты, как Alamofire? Или есть встроенный способ сделать это в Vapor?Как сделать запросы для подключения к сторонним API в Vapor?
ответ
В 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.
Будет ли какая-то реализация обещаний, так как немедленного ответа нет? –
@DylanReich 'drop.client' возвращает синхронно. Если вы комбинируете данные из двух или более удаленных API, то вы хотите использовать Promises (или просто GCD) для параллельного запуска запросов и возврата вместе. – tobygriffin
Прохладный, спасибо! –
Пожалуйста, добавьте дополнительные данные. Ваш вопрос непонятен. –
@NileshSingh привет, прошу прощения за непонятный вопрос. Я обновил вопрос. Надеюсь, что это поможет – naif
@naif в вашем [следующем вопросе] (http://stackoverflow.com/q/41513191/284120), вы, кажется, используете 'drop.client'. В StackOverflow, если ответ вам поможет, рекомендуется отметить его «принято» с помощью кнопки отметки. – tobygriffin