You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Looker Golang SDK调用run_inline_query接口获取返回值

问题定位

  1. Limit字段类型错误
    Looker Go SDK v4的WriteQuery结构体中Limit字段要求是*int64类型,你当前传入的是字符串指针,参数格式不符合API要求,会导致查询参数解析失败,无法返回正确结果。
  2. 响应打印方式错误
    RunInlineQuery方法返回的response是[]byte类型的原始JSON数据,直接调用fmt.Println(response)只会打印字节数组的数值序列,看起来类似空响应,需要转为字符串后再打印。
  3. 错误处理逻辑不完善
    当前代码出现错误后仅打印错误信息,仍会继续执行打印空响应的逻辑,无法及时识别参数错误、权限不足等问题。
  4. 可选排查点:字段关联问题
    你选择的字段同时包含dashboard和dashboard_element两个视图的属性,需要确保system__activity模型下dashboard视图和dashboard_element的关联已正确配置,也可以先简化字段列表做测试,排除字段配置错误的问题。

修正后代码

func getDashboards(sdk *looker.LookerSDK) error {
    fields := []string{
        "dashboard.id",
        "dashboard.title",
        // 可先注释掉其他关联字段做测试,验证通了再加
        // "dashboard_element.id",
        // "dashboard_element.type",
        // "dashboard_element.result_source",
        // "query.model",
        // "query.view",
        // "query.formatted_fields",
        // "query.id",
        // "look.id",
    }
    // Limit改为int64类型
    limit := int64(5000)

    response, err := sdk.RunInlineQuery(
        looker.RequestRunInlineQuery{
            ResultFormat: "json",
            Body: looker.WriteQuery{
                Model:  "system__activity",
                View:   "dashboard",
                Fields: &fields,
                Limit:  &limit,
            },
        }, nil)

    if err != nil {
        fmt.Printf("调用API失败: %v\n", err)
        return err
    }

    // 字节数组转字符串打印
    fmt.Println("查询结果:", string(response))
    return nil
}

额外使用建议

如果需要直接解析结果,可将RunInlineQuery的第二个参数传入对应类型的指针,SDK会自动完成反序列化,示例:

var result []map[string]interface{}
_, err := sdk.RunInlineQuery(request, &result)
if err == nil {
    fmt.Printf("共查询到%d条记录\n", len(result))
}

需提前确认SDK初始化时的身份凭证有system__activity模型的访问权限。


内容的提问来源于stack exchange,提问作者hselbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:18:01