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//! See [`prelude`] for a one-stop import.
14
15pub mod graphql;
16pub mod prelude;
17pub mod rest;
18mod transport;
19
20pub use vantage_api_pool::resilient::{
21    BreakerMode, BreakerState, CallPolicy, ClientError, ErrorKind, ResilientClient, RetryMode,
22    TransportEvent, TransportObserver,
23};
24pub use vantage_core::Priority;
25
26pub use graphql::{
27    AnyGraphqlType, FieldCondition, FilterDialect, GraphqlApi, GraphqlApiBuilder,
28    GraphqlApiTableShell, GraphqlApiVistaFactory, GraphqlApiVistaSpec, GraphqlBlock,
29    GraphqlColumnBlock, GraphqlColumnExtras, GraphqlCondition, GraphqlOp, GraphqlOperation,
30    GraphqlSelect, GraphqlTableExtras, GraphqlType, GraphqlTypeVariants, NoGraphqlExtras,
31    RenderedQuery,
32};
33pub use rest::{
34    ApiColumnExtras, ApiReferenceExtras, ApiTableBlock, ApiTableExtras, FilterStrategy,
35    ModelResolver, NoApiExtras, OrderingParams, PaginationParams, ResponseShape, RestApi,
36    RestApiBuilder, RestApiTableShell, RestApiVistaFactory, RestApiVistaSpec, eq_condition,
37};
38pub(crate) use rest::{cbor_to_query_string, condition_to_query_param};