Yavin leverages elide for its semantic layer and also its programmatic API. Elide supports two API standards:
- JSON-API - JSON-API is a REST API standard that makes it simple to construct queries in the browser URL or with curl.
- GraphQL - GraphQL is a more feature rich API that must be embedded in a POST body.
Both API formats support the following features:
- Rich filter support for measures and dimensions including complex predicates, logical conjunction (and), and logical disjunction (or).
- Sorting by both measures and dimensions.
- Pagination of results - including fetching the total size of the unpaginated result.
- Schema introspection tools (Swagger for JSON-API and Graphiql for GraphQL).
- Synchronous and Asynchronous query support.
API Documentation is broken out by topic:
- Analytic Queries - Example analytic queries can be found here.
- Metadata Queries - All of Yavin’s semantic model can be accessed programmatically. Details can be found here.
- JSON-API Documentation - The JSON-API standard is a good place to start to understand the specification. Elide has further documentation here.
- GraphQL Documentation - The GraphQL Specification provides an overview of querying with GraphQL. Elide exposes opinionated GraphQL APIs documented here.
- Asynchronous Queries - Queries that take longer than a minute should ideally be run asynchronously leveraging Elide’s asynchronous API support.
The Yavin service includes a landing page (found at /api/index.html) where you can browse the API documentation and run queries using either Swagger (JSON-API) or Graphiql (GraphQL).