Azure函数V2中的摇摆

Alb*_*ert 9 swagger azure-devops azure-functions openapi

我正在创建一个V2函数应用程序,并希望将Swagger/Open API用于文档,但Azure Portal for V2 Functions尚不支持它.

关于如何在VSTS中使用Swagger和V2函数在每个构建中创建文档的任何建议?

jus*_*yoo 9

TL; DR-使用NuGet包通过Azure函数呈现Open API文档和Swagger UI。

---

微软尚未正式开始支持Open API(或Swagger)。但是目前有一个社区驱动的NuGet软件包:

https://www.nuget.org/packages/Aliencube.AzureFunctions.Extensions.OpenApi/

这是它的博客文章:

https://devkimchi.com/2019/02/02/introducing-swagger-ui-on-azure-functions/

基本上,它的用法类似于Swashbuckle,即使用装饰器。并且它支持Azure Functions V1和V2。

致谢:我是NuGet软件包的所有者。

  • @Liam 是的,我正在管理两者。Aliencube 版本已转移至 MS 版本,待 MS 版本正式发布后将被存档。 (2认同)

Mir*_*mec 7

官方Azure Functions OpenAPI Extension。它仍处于预览阶段,但看起来很棒。


mda*_*ull 5

对于任何对此进行研究的人,Microsoft 仍然没有添加对 Azure Functions +v2 的开放 API 支持,也没有任何重大的进展。

我最近遇到了同样的问题,我找到了一个很好的解决方案。如果您还不知道,请查看:https : //github.com/RicoSuter/NSwag

NSwag 是一个工具链,它与 .NET 集成以生成 Open API 文档和 UI,但也为您生成相应的 API 客户端。过去 2 年我一直在使用这个工具来处理 Angular 和 .NET 应用程序,它节省了大量时间并与我的整个开发工作流程无缝集成。

对于 Azure Functions +v2,贡献者创建了一个生成器,它用不到 10 行代码,允许我们为 Azure Functions 类公开 Swagger 端点:https : //github.com/Jusas/NSwag.AzureFunctionsV2

现在,如果您使用 DI 设计 HTTP 触发函数,将相关操作分组到同一类下并利用模型绑定,您甚至可能不需要应用任何自定义装饰器,它就可以工作!下面是一个真实 API 的示例: API + Swagger 示例

(忽略基类。它是我遵循的个人模式的一部分,与 Swagger 无关)

这就是使用 swagger UI 的样子: Swagger UI 示例