progenitor/docs/implementing-client.md

32 lines
1.2 KiB
Markdown

# Implementing the client
Once you have generated your client, you'll notice there are two methods to create a new client; `Client::new()` and `Client::new_with_client()`.
The first method will create a basic client without any headers or customisations that aren't already in your OpenAPI specification file:
```rust
let client = Client::new("https://foo/bar");
```
Should you need to set custom headers or other reqwest::ClientBuilder methods, you can use `Client::new_with_client()` as shown below.
```rust
let mut val = reqwest::header::HeaderValue::from_static("super-secret");
val.set_sensitive(true);
let mut headers = reqwest::header::HeaderMap::new();
headers.insert(reqwest::header::AUTHORIZATION, val);
// Insert more headers if necessary
let client_builder = reqwest::ClientBuilder::new()
// Set custom timeout
.connect_timeout(Duration::new(60, 0))
// Set custom headers
.default_headers(headers)
.build()
.unwrap();
let client Client::new_with_client("https://foo/bar", client_builder);
```
For more information on available methods, see the [reqwest](https://docs.rs/reqwest/latest/reqwest/struct.ClientBuilder.html) documentation.