如何为 Azure Functions v3 配置 swagger ui 页面?
How can I configure the swagger ui page for Azure Functions v3?
我在 Program.Main()
中使用 .ConfigureOpenApi()
向 Azure 函数应用程序 (v3) 添加了 OpenApi 支持。我为特定功能使用功能装饰,但如何控制显示在 ~/api/swagger/ui 上的一般 API 名称、版本等?
这是我的 Program.Main()
代码:
public static void Main()
{
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults(worker => worker.UseNewtonsoftJson())
.ConfigureOpenApi()
.ConfigureServices(services =>
{
services.AddLogging();
}
)
.Build();
host.Run();
}
}
要控制 API 元信息,您应该定义实现 IOpenApiConfigurationOptions
的 class(位于命名空间 Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Abstractions
)。
注意:您的项目中应该只有一个IOpenApiConfigurationOptions
接口的实现。 Class 命名空间或可见性似乎并不重要。
最简单的方法是继承 Microsoft.Azure.WebJobs.Extensions.OpenApi.Core
提供的 DefaultOpenApiConfigurationOptions
并覆盖特定属性。
将包含以下内容的文件添加到您的项目(并更新必要的值):
using System;
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Configurations;
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Enums;
using Microsoft.OpenApi.Models;
namespace MyApp
{
internal class OpenApiConfigurationOptions : DefaultOpenApiConfigurationOptions
{
public override OpenApiInfo Info { get; set; } = new OpenApiInfo
{
Version = "1.0.0",
Title = "My API",
Description = "My API description",
License = new OpenApiLicense
{
Name = "MIT",
Url = new Uri("http://opensource.org/licenses/MIT"),
}
};
public override OpenApiVersionType OpenApiVersion { get; set; } = OpenApiVersionType.V3;
}
}
Microsoft 提供的示例项目可以 found here
我在 Program.Main()
中使用 .ConfigureOpenApi()
向 Azure 函数应用程序 (v3) 添加了 OpenApi 支持。我为特定功能使用功能装饰,但如何控制显示在 ~/api/swagger/ui 上的一般 API 名称、版本等?
这是我的 Program.Main()
代码:
public static void Main()
{
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults(worker => worker.UseNewtonsoftJson())
.ConfigureOpenApi()
.ConfigureServices(services =>
{
services.AddLogging();
}
)
.Build();
host.Run();
}
}
要控制 API 元信息,您应该定义实现 IOpenApiConfigurationOptions
的 class(位于命名空间 Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Abstractions
)。
注意:您的项目中应该只有一个IOpenApiConfigurationOptions
接口的实现。 Class 命名空间或可见性似乎并不重要。
最简单的方法是继承 Microsoft.Azure.WebJobs.Extensions.OpenApi.Core
提供的 DefaultOpenApiConfigurationOptions
并覆盖特定属性。
将包含以下内容的文件添加到您的项目(并更新必要的值):
using System;
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Configurations;
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Enums;
using Microsoft.OpenApi.Models;
namespace MyApp
{
internal class OpenApiConfigurationOptions : DefaultOpenApiConfigurationOptions
{
public override OpenApiInfo Info { get; set; } = new OpenApiInfo
{
Version = "1.0.0",
Title = "My API",
Description = "My API description",
License = new OpenApiLicense
{
Name = "MIT",
Url = new Uri("http://opensource.org/licenses/MIT"),
}
};
public override OpenApiVersionType OpenApiVersion { get; set; } = OpenApiVersionType.V3;
}
}
Microsoft 提供的示例项目可以 found here