improve general documentation
This commit is contained in:
		| @@ -54,3 +54,5 @@ rustls-tls = ["hyper-rustls", "tokio-rustls", "webpki-roots", "rustls", "tls"] | |||||||
|  |  | ||||||
| hyper-011 = ["hyper-old-types"] | hyper-011 = ["hyper-old-types"] | ||||||
|  |  | ||||||
|  | [package.metadata.docs.rs] | ||||||
|  | all-features = true | ||||||
|   | |||||||
| @@ -43,7 +43,8 @@ static DEFAULT_USER_AGENT: &'static str = | |||||||
| /// An asynchronous `Client` to make Requests with. | /// An asynchronous `Client` to make Requests with. | ||||||
| /// | /// | ||||||
| /// The Client has various configuration values to tweak, but the defaults | /// The Client has various configuration values to tweak, but the defaults | ||||||
| /// are set to what is usually the most commonly desired value. | /// are set to what is usually the most commonly desired value. To configure a | ||||||
|  | /// `Client`, use `Client::builder()`. | ||||||
| /// | /// | ||||||
| /// The `Client` holds a connection pool internally, so it is advised that | /// The `Client` holds a connection pool internally, so it is advised that | ||||||
| /// you create one and **reuse** it. | /// you create one and **reuse** it. | ||||||
| @@ -52,7 +53,7 @@ pub struct Client { | |||||||
|     inner: Arc<ClientRef>, |     inner: Arc<ClientRef>, | ||||||
| } | } | ||||||
|  |  | ||||||
| /// A `ClientBuilder` can be used to create a `Client` with  custom configuration: | /// A `ClientBuilder` can be used to create a `Client` with  custom configuration. | ||||||
| pub struct ClientBuilder { | pub struct ClientBuilder { | ||||||
|     config: Config, |     config: Config, | ||||||
| } | } | ||||||
| @@ -77,7 +78,9 @@ struct Config { | |||||||
| } | } | ||||||
|  |  | ||||||
| impl ClientBuilder { | impl ClientBuilder { | ||||||
|     /// Constructs a new `ClientBuilder` |     /// Constructs a new `ClientBuilder`. | ||||||
|  |     /// | ||||||
|  |     /// This is the same as `Client::builder()`. | ||||||
|     pub fn new() -> ClientBuilder { |     pub fn new() -> ClientBuilder { | ||||||
|         let mut headers: HeaderMap<HeaderValue> = HeaderMap::with_capacity(2); |         let mut headers: HeaderMap<HeaderValue> = HeaderMap::with_capacity(2); | ||||||
|         headers.insert(USER_AGENT, HeaderValue::from_static(DEFAULT_USER_AGENT)); |         headers.insert(USER_AGENT, HeaderValue::from_static(DEFAULT_USER_AGENT)); | ||||||
| @@ -369,6 +372,8 @@ impl Client { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /// Creates a `ClientBuilder` to configure a `Client`. |     /// Creates a `ClientBuilder` to configure a `Client`. | ||||||
|  |     /// | ||||||
|  |     /// This is the same as `ClientBuilder::new()`. | ||||||
|     pub fn builder() -> ClientBuilder { |     pub fn builder() -> ClientBuilder { | ||||||
|         ClientBuilder::new() |         ClientBuilder::new() | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -16,7 +16,8 @@ use {Certificate, Identity}; | |||||||
| /// A `Client` to make Requests with. | /// A `Client` to make Requests with. | ||||||
| /// | /// | ||||||
| /// The Client has various configuration values to tweak, but the defaults | /// The Client has various configuration values to tweak, but the defaults | ||||||
| /// are set to what is usually the most commonly desired value. | /// are set to what is usually the most commonly desired value. To configure a | ||||||
|  | /// `Client`, use `Client::builder()`. | ||||||
| /// | /// | ||||||
| /// The `Client` holds a connection pool internally, so it is advised that | /// The `Client` holds a connection pool internally, so it is advised that | ||||||
| /// you create one and **reuse** it. | /// you create one and **reuse** it. | ||||||
| @@ -60,7 +61,9 @@ pub struct ClientBuilder { | |||||||
| } | } | ||||||
|  |  | ||||||
| impl ClientBuilder { | impl ClientBuilder { | ||||||
|     /// Constructs a new `ClientBuilder` |     /// Constructs a new `ClientBuilder`. | ||||||
|  |     /// | ||||||
|  |     /// This is the same as `Client::builder()`. | ||||||
|     pub fn new() -> ClientBuilder { |     pub fn new() -> ClientBuilder { | ||||||
|         ClientBuilder { |         ClientBuilder { | ||||||
|             inner: async_impl::ClientBuilder::new(), |             inner: async_impl::ClientBuilder::new(), | ||||||
| @@ -93,8 +96,9 @@ impl ClientBuilder { | |||||||
|  |  | ||||||
|     /// Add a custom root certificate. |     /// Add a custom root certificate. | ||||||
|     /// |     /// | ||||||
|     /// This can be used to connect to a server that has a self-signed |     /// This allows connecting to a server that has a self-signed | ||||||
|     /// certificate for example. |     /// certificate for example. This **does not** replace the existing | ||||||
|  |     /// trusted store. | ||||||
|     /// |     /// | ||||||
|     /// # Example |     /// # Example | ||||||
|     /// ``` |     /// ``` | ||||||
| @@ -306,6 +310,8 @@ impl Client { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /// Creates a `ClientBuilder` to configure a `Client`. |     /// Creates a `ClientBuilder` to configure a `Client`. | ||||||
|  |     /// | ||||||
|  |     /// This is the same as `ClientBuilder::new()`. | ||||||
|     pub fn builder() -> ClientBuilder { |     pub fn builder() -> ClientBuilder { | ||||||
|         ClientBuilder::new() |         ClientBuilder::new() | ||||||
|     } |     } | ||||||
|   | |||||||
							
								
								
									
										47
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								src/lib.rs
									
									
									
									
									
								
							| @@ -5,15 +5,16 @@ | |||||||
|  |  | ||||||
| //! # reqwest | //! # reqwest | ||||||
| //! | //! | ||||||
| //! The `reqwest` crate provides a convenient, higher-level HTTP Client. | //! The `reqwest` crate provides a convenient, higher-level HTTP | ||||||
|  | //! [`Client`][client]. | ||||||
| //! | //! | ||||||
| //! It handles many of the things that most people just expect an HTTP client | //! It handles many of the things that most people just expect an HTTP client | ||||||
| //! to do for them. | //! to do for them. | ||||||
| //! | //! | ||||||
| //! - Uses system-native TLS | //! - Plain bodies, [JSON](#json), [urlencoded](#forms), [multipart](multipart) | ||||||
| //! - Plain bodies, JSON, urlencoded, multipart | //! - Customizable [redirect policy](#redirect-policy) | ||||||
| //! - Customizable redirect policy | //! - HTTP [Proxies](proxies) | ||||||
| //! - Proxies | //! - Uses system-native [TLS](#tls) | ||||||
| //! - Cookies (only rudimentary support, full support is TODO) | //! - Cookies (only rudimentary support, full support is TODO) | ||||||
| //! | //! | ||||||
| //! The rudimentary cookie support means that the cookies need to be manually | //! The rudimentary cookie support means that the cookies need to be manually | ||||||
| @@ -21,10 +22,15 @@ | |||||||
| //! support as of now. The tracking issue for this feature is available | //! support as of now. The tracking issue for this feature is available | ||||||
| //! [on GitHub][cookiejar_issue]. | //! [on GitHub][cookiejar_issue]. | ||||||
| //! | //! | ||||||
| //! The `reqwest::Client` is synchronous, making it a great fit for | //! The [`reqwest::Client`][client] is synchronous, making it a great fit for | ||||||
| //! applications that only require a few HTTP requests, and wish to handle | //! applications that only require a few HTTP requests, and wish to handle | ||||||
| //! them synchronously. | //! them synchronously. | ||||||
| //! | //! | ||||||
|  | //! Additional learning resources include: | ||||||
|  | //! | ||||||
|  | //! - [The Rust Cookbook](https://rust-lang-nursery.github.io/rust-cookbook/web/clients.html) | ||||||
|  | //! - [Reqwest Repositiory Examples](https://github.com/seanmonstar/reqwest/tree/master/examples | ||||||
|  | //! | ||||||
| //! ## Making a GET request | //! ## Making a GET request | ||||||
| //! | //! | ||||||
| //! For a single request, you can use the [`get`][get] shortcut method. | //! For a single request, you can use the [`get`][get] shortcut method. | ||||||
| @@ -116,6 +122,30 @@ | |||||||
| //! # } | //! # } | ||||||
| //! ``` | //! ``` | ||||||
| //! | //! | ||||||
|  | //! ## Redirect Policies | ||||||
|  | //! | ||||||
|  | //! By default, a `Client` will automatically handle HTTP redirects, detecting | ||||||
|  | //! loops, and having a maximum redirect chain of 10 hops. To customize this | ||||||
|  | //! behavior, a [`RedirectPolicy`][redirect] can used with a `ClientBuilder`. | ||||||
|  | //! | ||||||
|  | //! ## Proxies | ||||||
|  | //! | ||||||
|  | //! A `Client` can be configured to make use of HTTP proxies by adding | ||||||
|  | //! [`Proxy`](Proxy)s to a `ClientBuilder`. | ||||||
|  | //! | ||||||
|  | //! ## TLS | ||||||
|  | //! | ||||||
|  | //! By default, a `Client` will make use of system-native transport layer | ||||||
|  | //! security to connect to HTTPS destinations. This means schannel on Windows, | ||||||
|  | //! Security-Framework on macOS, and OpenSSL on Linux. | ||||||
|  | //! | ||||||
|  | //! - Additional X509 certicates can be configured on a `ClientBuilder` with the | ||||||
|  | //!   [`Certificate`](Certificate) type. | ||||||
|  | //! - Client certificates can be add to a `ClientBuilder` with the | ||||||
|  | //!   [`Identity`][Identity] type. | ||||||
|  | //! - Various parts of TLS can also be configured or even disabled on the | ||||||
|  | //!   `ClientBuilder`. | ||||||
|  | //! | ||||||
| //! ## Optional Features | //! ## Optional Features | ||||||
| //! | //! | ||||||
| //! The following are a list of [Cargo features][cargo-features] that can be | //! The following are a list of [Cargo features][cargo-features] that can be | ||||||
| @@ -135,6 +165,8 @@ | |||||||
| //! [builder]: ./struct.RequestBuilder.html | //! [builder]: ./struct.RequestBuilder.html | ||||||
| //! [serde]: http://serde.rs | //! [serde]: http://serde.rs | ||||||
| //! [cookiejar_issue]: https://github.com/seanmonstar/reqwest/issues/14 | //! [cookiejar_issue]: https://github.com/seanmonstar/reqwest/issues/14 | ||||||
|  | //! [redirect]: ./struct.RedirectPolicy.html | ||||||
|  | //! [Proxy]: ./struct.Proxy.html | ||||||
| //! [cargo-features]: https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-features-section | //! [cargo-features]: https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-features-section | ||||||
|  |  | ||||||
| extern crate base64; | extern crate base64; | ||||||
| @@ -218,9 +250,6 @@ mod wait; | |||||||
| pub mod multipart; | pub mod multipart; | ||||||
|  |  | ||||||
| /// An 'async' implementation of the reqwest `Client`. | /// An 'async' implementation of the reqwest `Client`. | ||||||
| /// |  | ||||||
| /// Relies on the `futures` crate, which is unstable, hence this module |  | ||||||
| /// is **unstable**. |  | ||||||
| pub mod async { | pub mod async { | ||||||
|     pub use ::async_impl::{ |     pub use ::async_impl::{ | ||||||
|         Body, |         Body, | ||||||
|   | |||||||
| @@ -16,6 +16,11 @@ use Url; | |||||||
| /// | /// | ||||||
| /// The default value will catch redirect loops, and has a maximum of 10 | /// The default value will catch redirect loops, and has a maximum of 10 | ||||||
| /// redirects it will follow in a chain before returning an error. | /// redirects it will follow in a chain before returning an error. | ||||||
|  | /// | ||||||
|  | /// - `limited` can be used have the same as the default behavior, but adjust | ||||||
|  | ///   the allowed maximum redirect hops in a chain. | ||||||
|  | /// - `none` can be used to disable all redirect behavior. | ||||||
|  | /// - `custom` can be used to create a customized policy. | ||||||
| #[derive(Debug)] | #[derive(Debug)] | ||||||
| pub struct RedirectPolicy { | pub struct RedirectPolicy { | ||||||
|     inner: Policy, |     inner: Policy, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user