odoo-api

github crates.io docs.rs docs.rs

odoo_api

The odoo_api crate provides a type-safe and full-coverage implementation of the Odoo JSON-RPC API, including ORM and Web methods. It supports sessioning, multi-database, async and blocking via [reqwest], and bring-your-own requests.

API Methods

For a full list of supported API methods, see [service].

Bring your own requests

By default, odoo_api uses [reqwest] as its HTTP implementation. It is also possible to provide your own HTTP implementation (see [OdooClient] for more info).

Example

To use the default [reqwest] implementation, add this to your Cargo.toml:

toml [dependencies] odoo_api = "0.2"

Then make your requests: ```rust use odoo_api::{OdooClient, jvec, jmap};

// build the client and authenticate let url = "https://demo.odoo.com"; let client = OdooClient::newreqwestasync(url)? .authenticate( "some-database", "admin", "password", ).await?;

// fetch a list of users let users = client.execute( "res.users", "search", jvec![] ).send().await?;

// fetch the login and partnerid fields from user id=1 let info = client.executekw( "res.users", "read", jvec![[1]], jmap!{ "fields": ["login", "partner_id"] } ).send().await?;

// fetch a list of databases let databases = client.db_list(false).send().await?;

// fetch server version info let versioninfo = client.commonversion().send().await?; ```