Документация Swagger не обновляется после развертывания с использованием конвейера Azure release - PullRequest
1 голос
/ 27 января 2020

Я использую Swashbuckle и swagger для документирования своего проекта API. NET Core (3.1).

Документация корректно обновляется в конечной точке сваггера, когда я использую функциональность publi sh в Visual Studio 2019 16.4.2.

Однако использование конвейера релиза в Azure позволяет добиться того же.

При использовании swagger gen, например:

 services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new OpenApiInfo
                {
                    Title = "SqlViewService",
                    Version = "v1",
                    Description = "Alter views..."
                });
            });

Я изначально начал добавив конечную точку в класс startup.cs следующим образом:

app.UseSwagger().UseSwaggerUI(s =>
            {
                s.SwaggerEndpoint("/swagger/v1/swagger.json", "SqlViewService v1");
            });

И после поиска нескольких статей и вопросов я попробовал это:

app.UseSwagger().UseSwaggerUI(s =>
            {
                s.SwaggerEndpoint("/swagger/v1/swagger.json", "SqlViewService v1");
                s.RoutePrefix = string.Empty;
            });

А также это, добавление текущего каталога по пути:

app.UseSwagger().UseSwaggerUI(s =>
            {
                s.SwaggerEndpoint("./swagger/v1/swagger.json", "SqlViewService v1");
            });

Согласно этой статье: https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio

Ни одна из попыток не сработала. У кого-нибудь есть хорошее предложение или реальное решение?

1 Ответ

0 голосов
/ 10 февраля 2020

Мне пришлось добавить следующее в классе Startup.cs в методе Configure:

 s.RoutePrefix = "swagger";

В этом разделе:

 app.UseSwagger().UseSwaggerUI(s =>
        {
            s.SwaggerEndpoint("/swagger/v1/swagger.json", "SqlViewService v1");
            s.RoutePrefix = "swagger";
        });

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

Путь к папке, используемой для развертывания, был:

Path to folder

И поскольку мой путь к папке для развертывания файлов был неправильным, я в основном развертывал в папке в файлах старых приложений, поэтому IIS никогда не «выбирал» этот выпуск.

...