首页 > 解决方案 > 使用 aspnetboilerplate 配置 swagger 时出现问题

问题描述

我们有一个带有 aspnetboilerplate 和 swagger 的 Netcore 应用程序。我们要更改招摇网址。为此,我们使用:

        app.UseSwaggerUI(options =>     
            {
                options.SwaggerEndpoint("swagger/v1/swagger.json", "Sample API");
                options.RoutePrefix = "sdAPi/swagger";
            }
        );

问题是我们还想使用 abp UI。为此,我们使用:

        app.UseSwaggerUI(options => 
        {
            options.SwaggerEndpoint("swagger/v1/swagger.json", "Sample API");                
            options.IndexStream = () => Assembly.GetExecutingAssembly()
                .GetManifestResourceStream("SmartDoc.Web.wwwroot.swagger.ui.index.html");
        });

这两行给出了冲突。如果我们不放 RoutePrefix ,swagger 从默认的 URL 开始,具有 swagger 和 abp 的 UI 特性。

如果我们只使用 RoutePrefix,swagger 会很好地加载到 URL 中。

一旦我们放置了 RoutePrefix 和 IndexStream,swagger 就不会加载服务。

        app.UseSwaggerUI(options => 
        {
            options.SwaggerEndpoint("swagger/v1/swagger.json", "Sample API");
            options.RoutePrefix = "sdAPi/swagger";
            options.IndexStream = () => Assembly.GetExecutingAssembly()
                .GetManifestResourceStream("SmartDoc.Web.wwwroot.swagger.ui.index.html");
        });

Swashbuckle:2.3.0.0 Abp:3.8.1 Netcore:2.1


如何同时使用这两个属性?,或者...如何在不使用 RoutePrefix 的情况下更改默认的招摇地址?

问候

标签: asp.net-coreswaggeraspnetboilerplate

解决方案


推荐阅读