Swagger не может загрузить определение API (еще один поток) - PullRequest
0 голосов
/ 18 января 2019

Я попытался добавить swagger к существующему API, и после неудачного завершения я решил создать новое решение, создать новый API-интерфейс asp.net core 2.2 и добавил swagger согласно

https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-2.2&tabs=visual-studio

Другие посты, относящиеся к этой проблеме, похоже, указывают на ситуацию, когда существует несколько httpverbs или их нет, что не относится к контроллеру значений по умолчанию.Это дает мне ошибку

Не удалось загрузить определение API.

Ошибка извлечения, служба недоступна /swagger/v1/swagger.json

Фактический файл json в api / swagger / v1 / swagger.json действительно правильно отображает

Мой класс запуска

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        services.AddSwaggerGen(c =>{
            c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
        });
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseSwagger();
        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
        });
        app.UseMvc();
    }
}

Я использую Swachbuckle.AspNetCore v 4.01.

1 Ответ

0 голосов
/ 10 июля 2019
        String SwaggerEndpoint = "/swagger/v1/swagger.json";

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
            SwaggerEndpoint = "/andi/swagger/v1/swagger.json";
        }


        app.UseMvc();

        app.UseSwagger();
        app.UseSwaggerUI(options =>
        {
            options.SwaggerEndpoint(SwaggerEndpoint, "My API");
            //options.RoutePrefix = string.Empty;
        });
...