1. 简单介绍
Microsoft Fabric 是微软提供的一个基于Saas的数据平台。当前全球已经70%的财富500强在使用Microsoft Fabric。

同时Microsoft Fabric也提供了Rest API,这样开发的应用程序就可以对这些API进行调用了。2025年5月Microsoft Fabric command-line interface也已经general available了,command-line interface也是基于Rest API的。微软在2024年也发布了Microsoft Fabric .NET SDK,nuget package 名称是Microsoft.Fabric.Api,查看了一下,目前的版本已经是2.18.0了。

这边将简单尝试一下使用Microsoft.Fabric.Api SDK获取特定workspace的lakehouse信息。
2. 使用Fabric SDK
这边要制作的是基于.NET 10的Console应用程序,同时采用的OAuth中的Auth code方式(授权码)来获取access token。
2.1 注册应用程序
要使用Microsoft Fabric .NET SDK,需要在Microsoft Extra ID中创建注册应用程序,同时记录一下Application ID和Directory ID,
- 在Microsoft Extra ID的App Registrations中创建一个注册应用程序,

- 添加一个Redirect URL,这边添加的是http://localhost

2.2 获取access token
获取access token的代码如下,
string Authority = "https://login.microsoftonline.com/organizations";
string RedirectURI = "http://localhost";
string[] scopes = new string[] { "https://api.fabric.microsoft.com/Workspace.ReadWrite.All https://api.fabric.microsoft.com/Item.ReadWrite.All https://api.fabric.microsoft.com/Lakehouse.Read.All https://api.fabric.microsoft.com/Lakehouse.ReadWrite.All" };
PublicClientApplicationBuilder PublicClientAppBuilder =
PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(Authority)
.WithRedirectUri(RedirectURI);
IPublicClientApplication PublicClientApplication = PublicClientAppBuilder.Build();
AuthenticationResult result = await PublicClientApplication.AcquireTokenInteractive(scopes)
.ExecuteAsync()
.ConfigureAwait(false);
access_token = result.AccessToken;
2.3 获取workspace
由于没有找到基于workspace name获取workspace的方法,这边采用过滤的方式来进行的,
fabric_Client = new FabricClient(access_token, new Uri("https://api.fabric.microsoft.com/v1/"));
var workspaces = await fabric_Client.Core.Workspaces.ListWorkspacesAsync().ToListAsync();
var fabricPracticeWorkspace = workspaces.Where(ws => ws.DisplayName == workspace).FirstOrDefault();
2.4 获取Lakehouse信息
首先实例化一个FabricLakehouseClient,然后使用FabricLakehouseClient去进行Lakehouses的查询操作,最后打印出Lakehouse的名字,
FabricLakehouseClient lakehouseClient = new FabricLakehouseClient(tokenCredential, new Uri("https://api.fabric.microsoft.com/v1/"));
var lakehouses = await lakehouseClient.Items.ListLakehousesAsync(fabricPracticeWorkspace!.Id).ToListAsync();
foreach (var lakehouse in lakehouses)
{
Console.WriteLine($"Workspace: {fabricPracticeWorkspace.DisplayName} | Lakehouse: {lakehouse.DisplayName}");
}
3. 运行程序
- 在Visual Studio启动应用程序,应用程序会自动在浏览器中打开如下网页,选择特定的用于授权的帐号,

- 最后网页显示Authenticion complete信息,

- 打开控制台窗口,可以看出Lakehouse信息已经提取出来了,

4. 总结
本文简单记录了一下使用Microsoft.Fabric.Api SDK获取特定workspace中lakehouse信息的过程,关于Microsoft Fabric .NET SDK的内容很多,后续还需要进一步跟着微软老师学习一下。
本文如果哪里有错误,麻烦告之,谢谢谢谢!