如何配置Azure Functions v3的swagger UI页面? [英] How can I configure the swagger ui page for Azure Functions v3?

查看:0
本文介绍了如何配置Azure Functions v3的swagger UI页面?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Program.Main()中使用.ConfigureOpenApi()向Azure Functions应用程序(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(位于命名空间Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Abstractions)的类。

注意:您的项目中应该只有一个IOpenApiConfigurationOptions接口实现。类命名空间或可见性似乎并不重要。

最简单的方法是继承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

这篇关于如何配置Azure Functions v3的swagger UI页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆