mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2026-10-01 12:31:59 +00:00
1.6 KiB
1.6 KiB
resolvespec (Rust)
Rust client for ResolveSpec (JSON body) and FunctionSpec. Async (reqwest + tokio). MSRV 1.80.
Clients
| Type | Constructor | Methods |
|---|---|---|
ResolveSpecClient |
new(base_url) / from_builder(ClientBuilder) |
get_metadata read create update delete |
FuncSpecClient |
new(base_url) / from_builder(ClientBuilder) |
query query_list request |
ClientBuilder::new(url).token().header().timeout().http_client(). Precedence: Content-Type < custom headers < bearer token.
ResolveSpec
RecordId:Int/Str→ URL,Many(Vec<String>)→ body (Fromimpls provided).Options(Default+ struct update), optional fields areOption/emptyVec.- Result:
Response{success, data: serde_json::Value, metadata};resp.decode::<T>().
FunctionSpec
- Routes are server-defined: pass the
path. Params = BTreeMap<String, Param>→ query string (Param::List→ repeated keys).FuncSpecOptions→X-*headers:filters,search_filters,custom_sql_where,custom_sql_or,sort,limit,offset,distinct,skip_count,skip_cache,response_format.query_listfillsmetadatafromContent-Range; 206 is success.
Server quirks
sortis raw SQL in ORDER BY (client sendscol ASC|DESC).- One search operator per column.
- Values starting
ZIP_/__are base64-decoded by the server. - Non-ASCII, control chars and edge spaces are auto-encoded (
ZIP_).
Errors
Error::Api { status, message, error: ApiError{code, message, detail, sql} }, Error::Http, Error::Json.
Test
cargo test