Trait canapi::Provider [−][src]
pub trait Provider<P> { type Data: Endpoint; fn get(
provider: &P,
id: <Self::Data as Endpoint>::Id
) -> Result<Self::Data, Error>; fn list(provider: &P, query: Self::Data) -> Vec<Self::Data>; fn create(provider: &P, query: Self::Data) -> Result<Self::Data, Error>; fn update(
provider: &P,
id: <Self::Data as Endpoint>::Id,
new_data: Self::Data
) -> Result<Self::Data, Error>; fn delete(provider: &P, id: <Self::Data as Endpoint>::Id); }
API to DB link
E
is the endpoint (API)
P
is the provider (DB)
Associated Types
Required Methods
fn get(
provider: &P,
id: <Self::Data as Endpoint>::Id
) -> Result<Self::Data, Error>
provider: &P,
id: <Self::Data as Endpoint>::Id
) -> Result<Self::Data, Error>
Get a single result by ID
fn list(provider: &P, query: Self::Data) -> Vec<Self::Data>
List all matching results
fn create(provider: &P, query: Self::Data) -> Result<Self::Data, Error>
Save a new object, and returns it
fn update(
provider: &P,
id: <Self::Data as Endpoint>::Id,
new_data: Self::Data
) -> Result<Self::Data, Error>
provider: &P,
id: <Self::Data as Endpoint>::Id,
new_data: Self::Data
) -> Result<Self::Data, Error>
Update an object
fn delete(provider: &P, id: <Self::Data as Endpoint>::Id)
Delete an object