go-redash
go-redash is a library for using Redash from Go.It will return json by specifying the query ID.
Example
package main
import (
"encoding/json"
"fmt"
"net/http"
"time"
"github.com/ryuichi1208/go-redash/lib/redash"
)
type AutoGenerated struct {
QueryResult struct {
RetrievedAt time.Time `json:"retrieved_at"`
QueryHash string `json:"query_hash"`
Query string `json:"query"`
Runtime float64 `json:"runtime"`
Data struct {} `json:"data"`
ID int `json:"id"`
DataSourceID int `json:"data_source_id"`
} `json:"query_result"`
}
func main() {
params := map[string]string{}
url := "REDASH_URL"
token := "REDASH_TOKEN"
http := &http.Client{}
r, err := redash.NewRedash(url, token, http)
if err != nil {
panic(err)
}
s, err := r.DoQuery("GET", REDASH_QUERY_ID, params)
if err != nil {
panic(err)
}
var ag AutoGenerated
if err := json.Unmarshal(s, &ag); err != nil {
panic(err)
}
for k, v := range ag.QueryResult.Data.Rows {
fmt.Println((k + 1), v)
}
}