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
WITH_RESULT (optional): Generate query results automatically, True by default
"""
Redash.create_query(1, "First Query", "SELECT * FROM table_name;", 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
X_AXIS (optional): Column for X Axis (Required if CHART_TYPE is not table nor pivot)
Y_AXIS (optional): Column for Y Axis (Required if CHART_TYPE is not table not pivot)
Y_LABEL (optional): Custom name for legend
TABLE_COLUMNS (optional): Custom columns for Table (Required if CHART_TYPE is table)
PIVOT_TABLE_OPTIONS (optional): Options for Pivot Table (Required if CHART_TYPE is pivot)
"""
Redash.create_visualization(1, "line", "First Visualization", X_AXIS, Y_AXIS, Y_LABEL)
# Create Dashboard
"""
:args:
NAME
"""
Redash.create_dashboard("First Dashboard")
# Add Visualization into Dashboard
"""
:args:
DASHBOARD_ID
VISUALIZATION_ID
FULL_WIDTH (optional): Full width or not on dashboard, False by default
"""
Redash.add_to_dashboard(1, 1, 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
Close
Hashes for redash_api_client-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33db835cb1fea59c629d52f25b95ad4647c9a877aef3aa6022ee892462cb9831 |
|
MD5 | eb626b5a768d8e65f6a67d1c9c38aebb |
|
BLAKE2b-256 | 44ad62a9ecf0f79a0dcc4da9ae993b7b29fc5e335d1e1437b61d9c3964ce97cb |