我正在创建一个V2 Function应用程序,并想为文档使用Swagger / Open API,但是Azure Portal for V2 Function尚不支持它。
关于如何在VSTS中将Swagger与V2函数一起使用以在每个版本上创建文档的任何建议?
答案 0 :(得分:4)
TL; DR-使用NuGet包通过Azure函数呈现Open API文档和Swagger UI。
-
Microsoft尚未正式开始支持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软件包的所有者。
答案 1 :(得分:2)
对于任何对此感兴趣的人,Microsoft仍未添加对Azure Functions + v2的Open API支持,并且对此没有任何重大动向。
我最近也遇到了同样的问题,并且找到了一个很好的解决方案。 如果您还不知道,请查看以下内容:2
NSwag是一个工具链,它与.NET集成以生成Open API文档和UI,但也可以为您生成相应的API客户端。 在过去的两年中,我在使用Angular和.NET应用程序时一直使用此工具,它节省了大量时间,并与我的整个开发工作流程无缝集成。
对于Azure Functions + v2,一个贡献者创建了一个生成器,该生成器使用不到10行代码,允许我们为Azure Function类公开Swagger终结点: https://github.com/RicoSuter/NSwag
现在,如果您使用DI设计HTTP触发函数,在同一类下对相关操作进行分组并利用模型绑定,那么您甚至不需要应用任何自定义装饰器,它就可以工作! 这是一个真实API的示例: https://github.com/Jusas/NSwag.AzureFunctionsV2
(忽略基类。这是我遵循的个人模式的一部分,与Swagger无关)
答案 2 :(得分:2)
有官方图书馆Azure Functions OpenAPI Extension。它仍处于预览版,但看起来很棒。
答案 3 :(得分:1)
中等实际上有一个很好的教程,介绍了如何完成此操作:Swagger in Azure Functions V2
它使用Swashbuckle
AzureFunctions扩展:https://www.nuget.org/packages/AzureFunctions.Extensions.Swashbuckle/
我已经成功测试/实施-绝对是实现此目的的最佳方法之一。
答案 4 :(得分:0)
是否可以通过首先使用空白函数应用程序重新启动V2函数,使其在运行时的v1上运行?
Create an OpenAPI definition for a function的MSDN文档(日期有趣的是11/2018)示例指出:
默认情况下,您创建的功能应用使用2.x版本的 运行。必须先将运行时版本设置回1.x。 创建功能。
但是不能只是将设置移至1:
要将功能应用固定到版本1.x运行时,请在下面选择〜1 运行时版本。当您具有以下功能时,此开关将被禁用 您的应用。
这意味着必须先创建Function应用程序,然后将其发布/创建,将其设置为V1,然后再添加功能。
答案 5 :(得分:-1)
您可以查看框架Function Monkey Function Monkey homepage
它具有很多功能,包括swagger / OpenAPI定义。 Function Monkey Swagger
答案 6 :(得分:-2)
在门户中,如果转到功能应用程序>平台功能> API定义,然后单击“ API定义源”下的“功能(预览)”按钮,则可以尝试在其中编写Swagger。