Postmark is a HTTP client agnostic rust client to postmark. We
reqwest implementation of a client that can be used pretty
simply by initializing it and passing it into the execute function of a
Endpoint implement the Query trait.
Some Endpoints are already provided to you. But if you need some that are
not implemented you are not constrained to modified this crated, you can
implement your own by implementing the
Endpoint trait and it will
work transparently with this library.
To use the [
reqwest] based client, you need to enable the feature
You can also implement you own client by implementing the
This crate is heavily inspired by the article “Designing Rust bindings for REST APIs
by Ben Boeckel and used in the gitlab crate.
It allows to have modular clients (someone wants to use something else than
Endpoints not supported by the library without needing to fork it.
use postmark::reqwest::PostmarkClient; use postmark::*; let client = PostmarkClient::builder() .base_url("https://api.postmarkapp.com/") .token("<sometoken>") .build(); let req = api::email::SendEmailRequest::builder() .from("email@example.com") .to("firstname.lastname@example.org") .body(api::email::Body::Text("Hi, this is me!".to_string())) .build(); let resp = req.execute(&client).await; resp.unwrap();
You’ll find in
api all the different predefined endpoints organized
by Postmark api sections
POSTMARK_API_URL is the default url to poke Postmark’s API