Skip to main content

vantage_api_client/
lib.rs

1//! Vantage adapters for HTTP-based API backends.
2//!
3//! Two protocol adapters live side by side:
4//!
5//! * [`rest`] — generic REST API client. Maps `Table<RestApi, E>` to
6//!   `GET {base_url}/{table_name}` with eq-conditions and pagination
7//!   peeled into the URL query string.
8//! * [`graphql`] — GraphQL API client. Renders typed query documents
9//!   with inline filters + variable-typed pagination, supports both
10//!   Hasura and flat-argument (e.g. SpaceX) dialects, and bridges
11//!   into Vista via a YAML schema map.
12//!
13//! Every type a caller needs is re-exported here; see [`prelude`] for a
14//! one-stop import. Requests go through `vantage-api-pool`'s
15//! [`ResilientClient`], whose types are re-exported too. The HTTP client
16//! is `reqwest` 0.12, which appears in the public API
17//! ([`RestApiBuilder::http_client`], [`RestApi::http_request`]).
18
19#![warn(missing_docs)]
20
21pub mod graphql;
22pub mod prelude;
23pub mod rest;
24mod row_keys;
25mod transport;
26
27pub use vantage_api_pool::resilient::{
28    AuthFuture, AuthRefresher, BreakerMode, BreakerState, CallPolicy, ClientError, ErrorKind,
29    ResilientClient, ResilientClientBuilder, RetryMode, RetryPolicy, TransportEvent,
30    TransportObserver,
31};
32pub use vantage_core::Priority;
33
34pub use graphql::{
35    AnyGraphqlType, CountMode, FieldCondition, FilterDialect, GraphqlApi, GraphqlApiBuilder,
36    GraphqlApiTableShell, GraphqlApiVistaFactory, GraphqlApiVistaSpec, GraphqlBlock,
37    GraphqlColumnBlock, GraphqlColumnExtras, GraphqlCondition, GraphqlOp, GraphqlOperation,
38    GraphqlSelect, GraphqlSpecResolver, GraphqlTableExtras, GraphqlType, GraphqlTypeVariants,
39    RenderedQuery, Supports,
40};
41pub use rest::{
42    ApiColumnExtras, ApiReferenceExtras, ApiTableBlock, ApiTableExtras, FilterStrategy,
43    ModelResolver, OrderingParams, PaginationMode, PaginationParams, ResponseShape, RestApi,
44    RestApiBuilder, RestApiTableShell, RestApiVistaFactory, RestApiVistaSpec, eq_condition,
45};
46pub(crate) use rest::{cbor_to_query_string, condition_to_query_param};