Azure功能的Swashbuckle:自定义标头

问题描述 投票:0回答:1

在我的Azure函数中,我添加了Swashbuckle,它正在运行。

[SwaggerIgnore]
[FunctionName("swaggerUi")]
public static Task<HttpResponseMessage> SwaggerUi(
    [HttpTrigger(AuthorizationLevel.Function, "get", Route = SwaggerRoutes.UiRoute)] 
    HttpRequestMessage req,
    [SwashBuckleClient] ISwashBuckleClient swashBuckleClient)
{
    return Task.FromResult(swashBuckleClient.CreateSwaggerUIResponse(req, 
                           req.CreateSwaggerDocumentRoute()));
}

现在,我想使用有关我的api的一些信息来自定义标题。

enter image description here

我发现一个post,那个家伙说这足以在host.json中添加一些配置,例如:

{
  "version": "2.0",
  "extensions": {
    ...

    "Swashbuckle": {
      "Documents": [
        {
          "Title": "YOUR_TITLE",
          "Version": "v1",
          "Description": "YOUR_DESCRIPTION"
        }
      ]
    }
  }
}

但是对我来说,它不起作用。有必要做什么?

azure-functions swagger-ui
1个回答
0
投票

好,现在我设法使其正常运行。当您在Visual Studio中创建新的Azure函数时,默认情况下会创建一个在.netcore3.0上运行的V3 Azure函数。

首先我没有注意到,并安装了此nuget AzureFunctions.Extensions.Swashbuckle;

添加了两个功能,一个给Swagger JSON,另一个给Swagger UI

当我运行该应用程序时,它给出了一些无关的错误。经过快速搜索,我最终找到了此Github Issue #21

  1. 此后,我迅速检查了它指向最新的Microsoft.Net.Sdk.FunctionsV3.x版本,并将其降级为V1.0.36

  2. 我编辑了我的func.csproj,并使用Azure func v2将目标框架指向了.netcore2.1

    <TargetFramework>netcoreapp2.1</TargetFramework><AzureFunctionsVersion>v2</AzureFunctionsVersion>

  3. [我注意到您发布route的文章被提及为/,如果使用它,那么您将获得RoutePatternException
  4. 我将路线更改为有意义的路线,并且效果很棒。

运行时,控制台显示

enter image description here

这里浏览以查看SwaggerUI是否有效

enter image description here

我也测试了SwaggerJSON

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.