Интеграция Swagger в Bot Framework 4 - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь интегрировать swagger / swashbuckler в проект с пользовательским интерфейсом в проект, основанный на последнем шаблоне Bot Framework V4. Однако кажется, что я получаю только 500 http кодов состояния, когда пытаюсь перейти к / swagger или /swagger/v1/swagger.json.

Вещи, которые я пытаюсь добавить, находятся в ConfigureServices:

services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});

и Configure:

loggerFactory = loggerFactory;

        app.UseDefaultFiles()
            .UseStaticFiles()
            .UseBotFramework();

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

Я также пытался поставить части UseSwagger раньше других, но тогда бот больше не работал. Вероятно, в конечных точках, генерируемых различными частями, есть какое-то столкновение, но мне бы очень хотелось, чтобы эта чванливая часть работала.

1 Ответ

0 голосов
/ 14 января 2019

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

Итак, вам нужно добавить следующее в ConfigureServices:

services.AddMvc();

А затем следующее до Configure. ПРИМЕЧАНИЕ: порядок вызовов UseXXX имеет значение, но порядок, в котором вы делаете их сейчас, в порядке, и я бы просто сделал это:

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