Using Client¶
Client
is a convenience wrapper around the lower level HTTP → Client. It automatically parses things like hostname and port from URIs and helps you encode and decode Content.
let res = try req.client().get("http://vapor.codes") print(res) // Future<Response>
Container¶
The first thing you will need is a service Container to create your client.
If you are making this external API request as the result of an incoming request to your server, you should use the Request
container to create a client. This is most often the case.
If you need a client during boot, use the Application
or if you are in a Command
use the command context's container.
Once you have a Container
, use the client()
method to create a Client
.
// Creates a generic Client let client = try container.client()
Send¶
Once you have a Client
, you can use the send(...)
method to send a Request
. Note that the request URI must include a scheme and hostname.
let req: Request ... let res = try client.send(req) print(res) // Future<Response>
You can also use the convenience methods like get(...)
, post(...)
, etc.
let user: User ... let res = try client.post("http://api.vapor.codes/users") { post in try post.content.encode(user) } print(res) // Future<Response>
See Content for more information on encoding and decoding content to messages.