.NetCore Swagger может не работать

Мне потребовалось много времени, чтобы попытаться настроить swagger для моего проекта .netCore.

следующие шаги я сделал, но не удалось :-(

  1. Нужет Пакет:

    Swashbuckler.SwaggerGen,
    Swashbuckler.SwaggerUi,
    
  2. в методе ConfigureServices

    instance.AddMvc();
    instance.AddSwaggerGen();
    
  3. в методе конфигурации

     instance.UseMvc();
     instance.UseSwagger();
     instance.UseSwaggerUi();
    
  4. Я перестраиваю свой проект и перехожу по ссылке http://localhost:5000/swagger/ui.

пришла ошибка: localhost отказался подключаться.ERR_CONNECTION_REFUSED

Кто-нибудь может мне помочь??

BR,

Леон


person user1938143    schedule 10.08.2017    source источник
comment
Ваше приложение вообще работает на этом порту? когда вы запускаете только что созданный проект, он запускается на IIS Express, обычно с большим случайным кажущимся числом, например 45342.   -  person Tseng    schedule 10.08.2017
comment
Привет Ценг, да мой аллика работает на 5000   -  person user1938143    schedule 10.08.2017
comment
Тогда вы не должны получать сообщения об отказе в подключении и получать 200 (все в порядке), 404 (страница не найдена) или 500 (внутренняя ошибка сервера, т.е. исключение)   -  person Tseng    schedule 10.08.2017
comment
Привет, Ценг, ты знаешь, как я могу установить порт для чванства?   -  person user1938143    schedule 10.08.2017
comment
Вы не знаете. Он будет работать в том же приложении. Вы абсолютно уверены, что можете связаться со своим приложением по адресу localhost:5000? Если вы можете, вы не должны получать ERR_CONNECTION_REFUSED. Скорее всего, вы получите 404 в /swagger/ui. Вы пытались удалить часть /ui?   -  person Marcus W    schedule 10.08.2017
comment
Привет, Маркус В., да, я уверен, я могу получить доступ к своему приложению на локальном хосте: 5000.   -  person user1938143    schedule 10.08.2017
comment
Пожалуйста, перейдите по ссылке ниже. Это сработало и для меня. stackoverflow.com/a/50629590/2367302   -  person Sreehari    schedule 03.07.2018


Ответы (2)


Это то, что у меня есть в моем проекте aspnet core rest api.

В методе ConfigureServices:

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

В методе Configure:

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

Затем просто перейдите к http://localhost:56468/swagger/, где 56468 — это порт, на котором работает мое приложение.

person regnauld    schedule 10.08.2017
comment
Привет, теперь все работает нормально, но другая ошибка: не удается прочитать swagger JSON с localhost: 5000/swagger/v1/swagger.json. - person user1938143; 10.08.2017
comment
Не могли бы вы обновить свой вопрос, указав, как именно выглядит ваш код сейчас? - person Marcus W; 11.08.2017

Вы должны включить пакет NuGet Swashbuckle.AspNetCore для конфигурации swagger. Добавьте приведенный ниже код в раздел Configure файла Startup.cs.

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

И добавьте приведенный ниже код в раздел ConfigureServices Statup.

services.AddSwaggerGen(c => {
       c.SwaggerDoc("v1", new OpenApiInfo() { Title = "My API", Description = "My API V1" });
    });
person RK001    schedule 13.10.2020