Cube JavaScript Client
The client provides methods to solve common tasks: Abstract from the transport and query data. You can fetch data from Cube Backend or subscribe to real-time updates regardless of the protocol, be it HTTP or WebSockets. Transform data for visualization. You can pivot the result set to display as a chart or as a table, split into series or table columns. Simplify work with complex query types. You can build drill down queries and decompose the results of compare date range queries or data blending queries. Learn more in the documentation for the@cubejs-client/core package.
Example Usage
Here are the typical steps to query and visualize analytical data:- Import the
@cubejs-client/corepackage. This package provides all the necessary methods. - Create an instance of Cube JavaScript Client. The client is initialized with Cube API URL. In development mode, the default URL is http://localhost:4000/cubejs-api/v1. The client is also initialized with an API token, but it takes effect only in production.
- Query data from Cube Backend. The client accepts a query, which is a plain JavaScript object. See Query Format for details.
- Transform data for visualization. The result set has convenient methods,
such as
seriesandchartPivot, to prepare data for charting. - Visualize the data. Use tools of your choice to draw charts and create visualizations.
Getting Started
You can install Cube JavaScript Client with npm or Yarn:Data format
The REST API uses JSON to serialize and transfer result sets. Numbers, e.g., values of numeric measures, are represented as strings. By default, JavaScript SDK also returns numbers as strings because an automatic conversion might lead to a precision loss. In JavaScript, only numbers betweenNumber.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER
can be safely parsed from strings. However, there’s no guarantee that a measure
value or a column value from a supported data source would
not be outside of this range.
If you’d like Cube to convert strings to numbers anyway, you can use the
castNumerics option for that: