Как сделать сторонний вызов API в Vapor 3?

Я хотел бы сделать почтовый звонок с некоторыми параметрами в Vapor 3.

POST: http://www.example.com/example/post/request

title: How to make api call
year: 2019

Какой пакет/функцию можно использовать?


person Rian    schedule 09.04.2019    source источник


Ответы (1)


Это легко, вы можете сделать это, используя Client вот так

func thirdPartyApiCall(on req: Request) throws -> Future<Response> {
    let client = try req.client()
    struct SomePayload: Content {
        let title: String
        let year: Int
    }
    return client.post("http://www.example.com/example/post/request", beforeSend: { req in
        let payload = SomePayload(title: "How to make api call", year: 2019)
        try req.content.encode(payload, as: .json)
    })
}

или например вот так в boot.swift

/// Called after your application has initialized.
public func boot(_ app: Application) throws {    
    let client = try app.client()
    struct SomePayload: Content {
        let title: String
        let year: Int
    }
    let _: Future<Void> = client.post("http://www.example.com/example/post/request", beforeSend: { req in
        let payload = SomePayload(title: "How to make api call", year: 2019)
        try req.content.encode(payload, as: .json)
    }).map { response in
        print(response.http.status)
    }
}
person imike    schedule 09.04.2019