需要* .analysis.windows.net / public / reports / querydata的文档

时间:2019-06-26 07:02:23

标签: json rest api powerbi

我正在反向工程一个将查询发送到的应用程序 通过JSON结构的查询的HTTP POST进行SOMESERVERNAME.analysis.windows.net/public/reports/querydata。

示例查询的某些初始行在此消息的末尾。

我在任何地方都找不到任何文档。我不知道这是一些秘密API还是什么。我最终只想完全忽略聚合,而只是转储原始数据,这些数据似乎位于后端的一些平面文件类型的容器中,但是由于没有一些API文档,我只能重新运行super我已经能够拦截的一些基本查询。

注意:此应用程序是使用PowerBI创建的嵌入式分析页面,但是我可以找到的PowerBI唯一的REST API与查询无关,而只是基本的对象管理。

谢谢!

{                                                                                                                                                                                                                                                           
"version": "1.0.0",                                                                                                                                                                                                                                       
"queries": [                                                                                                                                                                                                                                                
{                                                                                                                                                                                                                                                           
"Query": {                                                                                                                                                                                                                                                  
"Commands": [                                                                                                                                                                                                                                               
{                                                                                                                                                                                                                                                           
"SemanticQueryDataShapeCommand": {                                                                                                                                                                                                                          
"Query": {                                                                                                                                                                                                                                                  
"Version": 2,                                                                                                                                                                                                                                             
"From": [                                                                                                                                                                                                                                                   
{                                                                                                                                                                                                                                                           
"Name": "s",                                                                                                                                                                                                                                              
"Entity": "Sheet1"                                                                                                                                                                                                                                      
}                                                                                                                                                                                                                                                       
],                                                                                                                                                                                                                                                        
"Select": [                                                                                                                                                                                                                                                 
{                                                                                                                                                                                                                                                                       
"Aggregation": {                                                                                                                                                                                                                                            
"Expression": {                                                                                                                                                                                                                                             
"Column": {                                                                                                                                                                                                                                                 
"Expression": {                                                                                                                                                                                                                                             
"SourceRef": {                                                                                                                                                                                                                                              
"Source": "s"                                                                                                                                                                                                                                           
}                                                                                                                                                                                                                                                       
},                                                                                                                                                                                                                                                        
"Property": "Total"                                                                                                                                                                                                                                     
}                                                                                                                                                                                                                                                       
},                                                                                                                                                                                                                                                        
"Function": 0                                                                                                                                                                                                                                           
},                                                                                                                                                                                                                                                        
"Name": "Sum(Sheet1.Total)"                                                                                                                                                                                                                             
}                                                                                                                                                                                                                                                       
],                                                                                                                                                                                                                                                        
"Where": [                                                                                                                                                                                                                                                  
{                                                                                                                                                                                                                                                           
"Condition": {                                                                                                                                                                                                                                              
"In": {                                                                                                                                                                                                                                                     
"Expressions": [                                                                                                                                                                                                                                            
{                                                                                                                                                                                                                                                           
"Column": {                                                                                                                                                                                                                                                 
"Expression": {                                                                                                                                                                                                                                             
"SourceRef": {                                                                                                                                                                                                                                              
"Source": "s"                                                                                                                                                                                                                                           
}                                                                                                                                                                                                                                                       
},                                                                                                                                                                                                                                                        
"Property": "Year"                                                                                                                                                                                                                                      
}                                                                                                                                                                                                                                                       
}                                                                                                                                                                                                                                                       
],                                                                                                                                                                                                                                                        
"Values": [                                                                                                                                                                                                                                                 
[                                                                                                                                                                                                                                                           
{                                                                                                                                                                                                                                                           
"Literal": {                                                                                                                                                                                                                                                
"Value": "'2018'"                                                                                                                                                                                                                                       
 }                                                                                                                                                                                                                                                       
 }                                                                                                                                                                                                                                                       
 ]                                                                                                                                                                                                                                                       
 ]                                                                                                                                                                                                                                                       
 }                                                                                                                                                                                                                                                       
 }                                                                                                                                                                                                                                                       
 },                                       

............

2 个答案:

答案 0 :(得分:0)

我已经构建了一个客户端,可以使用相同的 API 从特定的 Power BI 报告中提取数据,但您可能可以根据自己的用例进行调整。也许我们甚至可以将代码抽象为一个更通用的 Power BI 客户端!

修改 API 两天后,我意识到可以通过多种方式格式化数据:

  • “嵌套”/多维数据可以不展平、展平 1 度等。
  • 结果数据集的主要“表”(在 data.PH 中)可以引用其他数据集(在 data.SH 中)

基本内容如下:

  • 数据集的结构类似于多维表,单元格包含值。
  • 在一组单元格中,第一个单元格始终有一个字段 S,其中包含其和所有后续单元格的架构。
  • 模式将每个单元格对象的字段与查询中的选择进行映射,例如带有查询列 G0age 字段。

我的客户似乎只处理特定类型的查询 (SemanticQueryDataShapeCommand)、特定的维度 nr 和标记为主要的特定列(通过 Binding.Primary)。但也许这有帮助! https://github.com/derhuerst/fetch-bvg-occupancy/blob/1ebb864b1ff7130f9d2f0ab031c6d78bcabdd633/lib/parse-dataset.js

答案 1 :(得分:0)

使用此 API 的唯一记录方式是通过 ADOMD.NETOleDb provider

如果您想以编程方式发送 DAX/MDX 查询并检索数据,这里有一个示例,说明如何使用简单的 REST API here 对服务进行前端处理。