共计 3812 个字符,预计需要花费 10 分钟才能阅读完成。
ASP.NET OpenAPI 能够十分不便的将咱们的 Web API 我的项目主动文档化,除了主动文档化以外,咱们还能够利用 Azure API Management 将 Open API 主动文档化了的 Web API 整合到当下最火的低代码利用当中,在这篇文章中,我将向您展现如何应用 Azure API Management 将 Azure Functions,Power Apps 和 Logic Apps 等等 Azure Service 串联在一起。Azure API Management 可能利用已文档化的 API 定义来公开咱们的 API 端点,这些端点能够轻松应用在低代码的应用程序中。来看看这有多简略:
https://www.bilibili.com/vide…
将您的 API 导入 Azure API Management
随着 Visual Studio 2019 16.9 的公布,咱们减少了对公布到现有 Azure API Management 服务实例以及创立 Azure API Management 的新生产模式实例的反对,所以只有您是 Azure 的客户,您就能够在须要时应用 API Management 的监督,平安和集成性能。
当您公布一个曾经整合了 Swashbukle.AspNetCore(在 ASP.NET Core 5 Web API 我的项目中为默认整合选项) 的.NET Core API 我的项目到 Azure App Service 的时候,Azure API Management 选项卡就会呈现在公布对话框中,你能够抉择一个现成的 Azure API Management 实例,也能够新建一个实例。
公布实现后,您将可能间接在 Azure API Management 门户中测试您的 API。在这里,您还能够监测流量,管制拜访权限并将 API 导出到其余服务(本文的下一部分中将介绍如何将 API 导出到其余服务)。
注:Visual Studio 中只能新建 Azure API Management 的生产模式实例。这是 Azure API Management 的轻量级,无服务器版本,按执行次数免费,每月提供 100 万次收费调用。如果有现有的 Azure API Management 实例,也能够将其导入其中。该性能可用于 Azure API Management 的任何服务级别。
如果您不相熟 Azure API Management,您能够在 docs.microsoft.com 上理解更多无关应用 Visual Studio 或 Visual Studio Code 将 API 公布到 Azure API Management 中的信息。
Azure API Management:
https://translate.google.com/…
Azure API Management 的轻量级,无服务器版本,按执行次数免费,每月提供 100 万次收费调用:
https://azure.microsoft.com/p…
Visual Studio:
https://translate.google.com/…
Visual Studio Code:
https://translate.google.com/…
应用您的 API 和 Logic Apps 构建工作流程
公布蕴含 OpenAPI 的 Web API 或 Azure Functions(蕴含在本文后附的示例代码库)之后,就能够应用 Azure Logic Apps 将它们用于业务工作流,定时工作或事件触发的流程中。Logic Apps 设计器会主动抉择导入现有 Azure API Management 服务实例中的所有 API,从而轻松确定可用的 API。
因为 Logic Apps 设计器晓得如何为我在 API Management 中导入的 API 绘制 OpenAPI 文档化的定义,因而很容易弄清楚我须要调用哪个 API 能力创立反复的库存查看流程。
应用 Azure Functions 扩大工作流
通过引入 Azure Functions 的 OpenAPI 扩大,您能像在 WebAPI Controllers 中利用 NSwag 和 Swashbukle 导出 OpenAPI 的形容一样,从 Azure Functions 中导出你的 OpenAPI 形容。在示例代码中,您会发现一个告诉性能,该性能能够构建一个 Adaptive Cards, 总结低档产品的库存状态。应用该 OpenAPI 的扩大的功能属性,Azure Function 就能够应用 OpenAPI 进行文档化形容并导入到 Azure API Management 了。
public static class InventoryNotifier
{[OpenApiOperation(operationId: nameof(SendLowStockNotification),
Visibility = OpenApiVisibilityType.Important)
]
[OpenApiRequestBody(contentType: "application/json",
bodyType: typeof(Product[]),
Required = true)
]
[FunctionName(nameof(SendLowStockNotification))]
public static async Task<IActionResult> SendLowStockNotification([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
ILogger log)
{// function code...}
}
导入到 Azure API Management 后,咱们就能够在简单的 Workflow 比方 Logic App 中应用这些 Azure Function 了。比方我能够在 Azure Portal 中设计一个 workflow, 这个 workflow 能够混合应用纯 Web API 和利用 OpenAPI 导出到 Azure API Management 的 Azure Function。
示例代码库:
https://translate.google.com/…
OpenAPI:
https://translate.google.com/…
Adaptive Cards:
https://translate.google.com/…
应用您的 API 构建 Power Apps
如果要在应用 Office 365 和 Power Apps 的环境中构建 ASP.NET Core Web API 和 Azure Functions,Azure API Management 能够充分发挥您的 HTTP API 开发能力。API Management APIs 能够轻松地作为自定义连接器导出到 Power Platform。
在这里,我曾经开始构建一个能够分发给 Microsoft 365 tenant 中的任何用户的挪动应用程序。因为刚开始,所以我疾速地增加了刚刚创立的自定义连接器,该自定义连接器会将 Power Platform 连贯到 Azure 中托管的 API。当我增加新的“Refresh”按钮后,鼠标放上去会呈现一个公式输入框,我在这个公式输入框里调用 ClearCollect 办法以革除汇合变量 productsCollection,而后应用 StoreAPIs.GetProducts 操作从新填充汇合。
Power Apps 的长处在于,即便在设计模式下,它也能够进行数据绑定。因而,当我开发这个应用程序时,不用一遍又一遍地从新运行,数据会始终绑定到正确的控件上。
如果您对如何应用 OpenAPI 将您的 API 文档化并不理解,您能够参考咱们之前公布的内容:
-
应用 ASP.NET Core 5 Web API 创立可被发现的 HTTP API
https://translate.google.com/…
-
开源 HTTP API 软件包和工具
https://translate.google.com/…
-
应用 Visual Studio Connected Services 生成 HTTP API 客户端
https://translate.google.com/…
- 应用 Azure API Management,Functions,Power Apps 和 Logic Apps 构建应用程序(本文)
总结
在这一系列文章中,咱们带您从一些确保正确应用 OpenAPI 对 API 进行文档化形容的通用指南开始,继而探讨了各种可能帮忙您更轻松地设计,构建和测试 API 的开源我的项目和工具。最初,向您展现了如何在各种应用程序构建和集成计划中应用这些曾经文档化形容的 API。心愿这些可能带给您一些新的技巧,并给您一些灵感,帮忙您在将来的我的项目中更欢快地构建 API 和应用程序。
下一步是什么?
咱们很快乐可能与您在本系列中分享整个端到端.NET HTTP API 开发人员的教训。心愿您曾经看到.NET 能够帮忙您构建与行业标准规范,社区我的项目以及 Microsoft 工具(例如 Visual Studio 和 Azure)良好集成的高质量 API。
如果您是经验丰富的.NET 开发人员,则能够在.NET 文档中深入研究一些更高级的主题,也能够查看此博客系列中的源代码。
.NET 文档:
https://translate.google.com/…
此博客系列中:
https://translate.google.com/…
源代码:
https://translate.google.com/…