上云无忧 > 文档中心 > 百度智能云数据可视化Sugar BI 绑定数据方式 - API概述
数据可视化Sugar BI
百度智能云数据可视化Sugar BI 绑定数据方式 - API概述

文档简介:
Sugar BI上的图表和过滤条件数据可以由用户通过 API 的形式来提供。Sugar BI会在后端通过 POST 的方式访问用户的 API,并在请求的 body 中带上过滤条件、下钻参数、联动参数等当前图表拉取数据时需要的信息,可以参考后面每个语言下如何获取的说明。具体的请求情况可以在图表的数据「调试」时弹框中看到。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Sugar BI上的图表和过滤条件数据可以由用户通过 API 的形式来提供。Sugar BI会在后端通过 POST 的方式访问用户的 API,并在请求的 body 中带上过滤条件、下钻参数、联动参数等当前图表拉取数据时需要的信息,可以参考后面每个语言下如何获取的说明。具体的请求情况可以在图表的数据「调试」时弹框中看到。

用户的 API 返回数据要求都是 JSON 类型,格式如下:

{ status: 0, // 0表示成功,非0表示失败 msg: '', // 失败时的提示信息 data: {...} // 具体的数据 }

每种图表和过滤条件的 API 数据格式要求都不太一样,详见各种图表的 API 格式要求。

在各种语言下获取过滤条件的方法

Node

以 Express 为例

const express = require('express'); const app = express(); const bodyParser = require('body-parser');
 app.use(bodyParser.json()); app.post('/api', function(req, res) { console.log(req.body); 
// 查询条件的 json res.json(...); }) app.listen(3000)

Java

以 Spring 为例

@RequestMapping(value = "/api", method = POST, consumes = MediaType.ALL_VALUE, produces 
= MediaType.APPLICATION_JSON_UTF8_VALUE) @ResponseBody public String api(@RequestBody String filter) 
{ // filter 就是字符串形式的 json,需要使用 Jackson 等库解析为对象来使用 }

PHP

<?PHP
$json = file_get_contents('php://input');
$data = json_decode($json);

.NET

using Microsoft.AspNetCore.Mvc; using System.IO; using Newtonsoft.Json; namespace
 MvcMovie.Controllers { public class HelloWorldController : Controller { [HttpPost] 
public JsonResult Index() { using (var reader = new StreamReader(HttpContext.Request.Body))
 { dynamic json = JsonConvert.DeserializeObject(reader.ReadToEnd()); var conditions = 
json.conditions; var data = new { status = 0, msg = "" }; return Json(data); } } } }

go

func api(w http.ResponseWriter, r *http.Request) { body, _ := ioutil.ReadAll(r.Body) var result 
map[string]interface{} // 这里简化了,最好参考对应的参数说明文档创建 struct json.Unmarshal(body, &result) }

Python

import json # falcon 框架 class SugarAPI(object): def on_post(self, req, resp): data = json.
load(req.bounded_stream) # flask 框架 from flask import request
@app.route('/api', methods=['POST']) def sugar_api(): data = json.loads(request.data)

Ruby

require 'sinatra' require 'json' post '/api/' do request.body.rewind
  request_payload = JSON.parse request.body.read end

相似文档
  • Sugar BI中的每个图表可以对应一个数据 API,用户浏览报表时,选定一定的过滤条件,点击「查询」按钮将会通过 API 拉取相应的数据;前面说过,为了确保用户数据的安全性,Sugar BI上的所有数据请求都在Sugar BI的后端通过 curl 的方式访问产品线的 API,都是使用的POST请求,POST 的数据是过滤条件、下钻、联动参数等,并且在请求的 Header 中会附加Sugar-Token.
  • Sugar BI中支持 10+种过滤组件,有些过滤组件是支持绑定数据的,例如单选,就可以给它绑定单选项的数据。下面分别列举每种过滤组件在使用 API 方式绑定自身数据时,所对应的数据 API 返回的 JSON 格式要求:
  • 有以下的方式来保证数据 API 的安全性: API 的 token: Sugar BI上的所有数据请求都在Sugar BI的后端通过 curl 的方式访问用户的 API,并且用户可以设置访问的 token,设置的 token 会作为查询参数附加在 API 请求的头文件 Header 中,格式为:Sugar-Token: yourToken。
  • 前面说过,Sugar BI上的图表数据可以由用户通过 API 的形式来提供,Sugar BI平台在访问这些 API 时,如果页面上有过滤组件,我们会将过滤条件作为 POST 请求的 body 传递给后端。所有过滤条件将会汇总在一起形成一个数组「conditions」参数,其格式如下:
  • 有关图表如何配置下钻功能,详见图表的下钻设置。 下钻参数在哪里看: 对于下钻弹出的图表,最重要的就是如何知道下钻的参数有哪些?其实,在下钻弹出图表的右侧控制面板中「数据」下,单击「调试」,就能看到上层图表传递给本下钻图表的下钻参数。例如,一个饼图点击下钻弹出一个折线图:
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部