pub struct RequestWriter { /* private fields */ }Expand description
Sans-IO HTTP request encoder.
Owns a WriteBuf and endpoint configuration. The typestate builder
methods serialize HTTP requests directly into the buffer. finish()
returns Request<'_> borrowing the assembled bytes.
§Usage
use nexus_web::rest::RequestWriter;
let mut writer = RequestWriter::new("api.binance.com")?;
writer.set_base_path("/api/v3")?;
writer.default_header("X-API-KEY", &key)?;
let req = writer.get("/orders")
.query("symbol", "BTC-USD")
.finish()?;
// req.as_bytes() contains the complete HTTP request wire bytesImplementations§
Source§impl RequestWriter
impl RequestWriter
Sourcepub fn new(host: &str) -> Result<Self, RestError>
pub fn new(host: &str) -> Result<Self, RestError>
Create a new writer for the given host.
Pre-serializes the Host and Connection: keep-alive headers. Default write buffer: 32KB.
§Errors
Returns RestError::CrlfInjection if host contains CR/LF.
Sourcepub fn set_write_buffer_capacity(&mut self, capacity: usize)
pub fn set_write_buffer_capacity(&mut self, capacity: usize)
Set the write buffer capacity. Default: 32KB.
Must be called before any requests are built.
§Panics
Panics if capacity is 0.
Sourcepub fn default_header(
&mut self,
name: &str,
value: &str,
) -> Result<(), RestError>
pub fn default_header( &mut self, name: &str, value: &str, ) -> Result<(), RestError>
Add a default header sent with every request.
Pre-serializes into wire format. Append-only.
§Errors
Returns RestError::CrlfInjection if name or value contains CR/LF.
Sourcepub fn set_base_path(&mut self, path: &str) -> Result<(), RestError>
pub fn set_base_path(&mut self, path: &str) -> Result<(), RestError>
Set a base path prefix prepended to all request paths.
Trailing slashes are stripped. Request paths should start with /.
§Errors
Returns RestError::CrlfInjection if the path contains CR/LF.
Sourcepub fn get(&mut self, path: &str) -> RequestBuilder<'_>
pub fn get(&mut self, path: &str) -> RequestBuilder<'_>
Build a GET request.
Sourcepub fn post(&mut self, path: &str) -> RequestBuilder<'_>
pub fn post(&mut self, path: &str) -> RequestBuilder<'_>
Build a POST request.
Sourcepub fn put(&mut self, path: &str) -> RequestBuilder<'_>
pub fn put(&mut self, path: &str) -> RequestBuilder<'_>
Build a PUT request.
Sourcepub fn delete(&mut self, path: &str) -> RequestBuilder<'_>
pub fn delete(&mut self, path: &str) -> RequestBuilder<'_>
Build a DELETE request.
Sourcepub fn request(&mut self, method: Method, path: &str) -> RequestBuilder<'_>
pub fn request(&mut self, method: Method, path: &str) -> RequestBuilder<'_>
Build a request with the given method.
Sourcepub fn get_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
pub fn get_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
Sourcepub fn post_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
pub fn post_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
Build a POST with a pre-formed URL path.
Sourcepub fn put_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
pub fn put_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
Build a PUT with a pre-formed URL path.
Sourcepub fn delete_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
pub fn delete_raw(&mut self, path: &str) -> RequestBuilder<'_, Headers>
Build a DELETE with a pre-formed URL path.
Sourcepub fn request_raw(
&mut self,
method: Method,
path: &str,
) -> RequestBuilder<'_, Headers>
pub fn request_raw( &mut self, method: Method, path: &str, ) -> RequestBuilder<'_, Headers>
Build a request with a pre-formed URL path.