Redash API Client
Project description
Redash-API-Client
Redash API Client written in Python.
Dependencies
- Python3.6+
Installation
Install using pip:
pip install redash-api-client
Getting Started
from redashAPI.client import RedashAPIClient
# Create Client instance
"""
:args:
API_KEY
REDASH_HOST (optional): 'http://localhost:5000' by default
"""
Redash = RedashAPIClient(API_KEY, REDASH_HOST)
Redash's RESTful API
URI | Supported Methods |
---|---|
users | GET, POST |
users/1 | GET, POST |
data_sources | GET, POST |
data_sources/1 | GET, POST, DELETE |
queries | GET, POST |
queries/1 | GET, POST, DELETE |
query_results | POST |
query_results/1 | GET |
visualizations | POST |
visualizations/1 | POST, DELETE |
dashboards | GET, POST |
dashboards/slug | GET, POST, DELETE |
widgets | POST |
widgets/1 | POST, DELETE |
### EXAMPLE ###
# List all Data Sources
res = Redash.get('data_sources')
res.json()
"""
Response: [{"name": "Data Source 1", "pause_reason": null, "syntax": "sql", "paused": false, "view_only": false, "type": "mysql", "id": 1}]
"""
# Get specific Data Source
res = Redash.get('data_sources/1')
res.json()
"""
Response: {"scheduled_queue_name": "scheduled_queries", "name": "Data Source 1", "pause_reason": null, "queue_name": "queries", "syntax": "sql", "paused": false, "options": {"passwd": "--------", "host": "mysql", "db": "mds", "port": 3306, "user": "root"}, "groups": {"2": false}, "type": "mysql", "id": 1}
"""
# Create New Data Source
Redash.post('data_sources', {
"name": "New Data Source",
"type": "mysql",
"options": {
"dbname": DB_NAME,
"host": DB_HOST,
"user": DB_USER,
"passwd": DB_PASSWORD,
"port": DB_PORT
}
})
# Delete Data Source
Redash.delete('data_sources/1')
Methods
# Create Data Source
"""
:args:
DATA_SOURCE_TYPE: ["sqlite", "mysql", "pg", "mongodb", "mssql" ...]
DATA_SOURCE_NAME
OPTIONS
"""
Redash.create_data_source("pg", "First Data Source", {
"dbname": DB_NAME,
"host": DB_HOST,
"user": DB_USER,
"passwd": DB_PASSWORD,
"port": DB_PORT
})
# Create Query
"""
:args:
DATA_SOURCE_ID
QUERY_NAME
QUERY_STRING
DESC (optional)
WITH_RESULTS (optional): Generate query results automatically, True by default
"""
Redash.create_query(1, "First Query", "SELECT * FROM table_name;", with_results=False)
# Refresh Query
"""
:args:
QUERY_ID
"""
Redash.refresh_query(1)
# Generate Query Result
"""
:args:
QUERY_ID
"""
Redash.generate_query_result(1)
# Create Visualization
"""
:args:
QUERY_ID
CHART_TYPE: ["table", "line", "column", "area", "pie", "scatter", "bubble", "box", "pivot"]
CHART_NAME
COLUMNS (optional): Columns for Table (Required if CHART_TYPE is table)
X_AXIS (optional): Column for X Axis (Required if CHART_TYPE is not table nor pivot)
Y_AXIS (optional): Columns for Y Axis (Required if CHART_TYPE is not table nor pivot)
CUSTOM_OPTIONS (optional): Custom options for Visualization
DESC (optional)
"""
Redash.create_visualization(1, "table", "First Visualization", columns=[{"name": "column1", "type": "string"}, {"name": "column2", "type": "datetime"}])
Redash.create_visualization(1, "line", "Second Visualization", x_axis="column1", y_axis=[{"type": "line", "name": "column2", "label": "c2"}])
# Create Dashboard
"""
:args:
NAME
"""
Redash.create_dashboard("First Dashboard")
# Add Widget into Dashboard
"""
:args:
DASHBOARD_ID
TEXT (optional)
VISUALIZATION_ID (optional)
FULL_WIDTH (optional): Full width or not on dashboard, False by default
POSITION (optional)
"""
Redash.add_widget(1, text="Test")
Redash.add_widget(1, visualization_id=1, full_width=True)
# Publish Dashboard
"""
:args:
DASHBOARD_ID
"""
url = Redash.publish_dashboard(1)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file redash-api-client-0.2.2.tar.gz
.
File metadata
- Download URL: redash-api-client-0.2.2.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d29ed53f57fcf8cd1c033084b36156b5e9ddddd6eb2779b8934078cf06c34c21 |
|
MD5 | 300df91abaf2e7e90f891a648dc42233 |
|
BLAKE2b-256 | d30e362af7dbca2fdf70b39bbe8135e0595b47c94bfb8b135b13978584fa3296 |
File details
Details for the file redash_api_client-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: redash_api_client-0.2.2-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 524c22255264cabc6dbf413f7eb10b44374db365ea3ca6183197a7c96d6e199d |
|
MD5 | 597e2dad3da089b147bebf370bb2d6a0 |
|
BLAKE2b-256 | 01d326a3b936a6bd359a399f71de2b917246f709c4eabd4f39e784a06c3574bd |