pub trait Endpoint {
type Query: Serialize;
type Body: Serialize;
type Response: FromResponse;
// Required method
fn path(&self) -> Cow<'_, str>;
// Provided methods
fn method(&self) -> Method { ... }
fn require_auth(&self) -> bool { ... }
fn query(&self) -> Option<&Self::Query> { ... }
fn body(&self) -> Option<&Self::Body> { ... }
fn multipart(&self) -> Option<Form> { ... }
}