Power BI API之一是通过ID获取数据集。有人可以阐明命令语法从工作区获取数据集表的情况吗?谢谢。
获取https://api.powerbi.com/groups/ {工作区ID} /数据集/ {数据集ID} / {TableName}吗?
答案 0 :(得分:1)
如果您正在寻找一种获取表的架构(列列表)的方法,那么该API当前不提供执行此操作的方法。可能是该数据集是使用API创建的,因此您应该知道自己创建了什么。如果要获取数据集中的表列表,可以使用https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/tables
,如下所示:
private void GetDatasetById(string accessToken, string groupId, string datasetId)
{
string powerBIDatasetsApiUrl = $"https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/tables";
var request = WebRequest.Create(powerBIDatasetsApiUrl) as HttpWebRequest;
request.KeepAlive = true;
request.Method = "GET";
request.ContentLength = 0;
request.ContentType = "application/json";
request.Headers.Add("Authorization", $"Bearer {accessToken}");
using (HttpWebResponse httpResponse = request.GetResponse() as System.Net.HttpWebResponse)
{
using (StreamReader reader = new System.IO.StreamReader(httpResponse.GetResponseStream()))
{
MessageBox.Show(reader.ReadToEnd());
}
}
}
答案 1 :(得分:0)
您可以使用GetTables方法来检索表及其对应的元数据,但它仅支持推送数据集。
https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_gettables
使用.NET客户端时,语法为:
using (var client = new PowerBIClient(new Uri(_apiUrl), _credentials))
{
var tables = client.Datasets.GetTables(_datasetId);
}