2015-12-16 5 views
0

В настоящее время мы пытаемся начать работу с услугами WebApi для переключения наших продуктов с традиционных сервисов WCF SOAP. Задача, которую мы получили, - предоставить документацию api. Я наткнулся на пряжку SwaggerUi/swash. У нас есть одно ограничение: мы не хотим размещать службы WebApi в IIS, но в службе Windows. Я новичок в Web Api, поэтому я могу делать что-то не так.Документация Web Api с swashbuckle

Так что для тестирования я размещаю веб-api в консольном приложении. Я могу использовать HttpClient для вызова метода Get в Web Api, но я не могу получить доступ к тому же, если я набираю url в веб-браузере (это нормально для самостоятельной веб-api?).

Итак, я установил пакет Swashbuckle.core nuget и включил следующий код в класс запуска (Ohost selfhoted).

var config = new HttpConfiguration(); 

     config 
      .EnableSwagger(c => 
      { 
       c.IncludeXmlComments(GetXmlCommentsPath()); 
       c.SingleApiVersion("v1", "WebApi"); 
       c.ResolveConflictingActions(x => x.First()); 
      }) 
      .EnableSwaggerUi(); 

private static string GetXmlCommentsPath() 
    { 
     var path = [email protected]"{AppDomain.CurrentDomain.BaseDirectory}\WebApiHost.XML"; 

     return path; 
    } 

Когда я просматриваю к следующему адресу http://localhost:5000/swagger/ui/index я получаю «Страница не может быть отображена» в IE. Похоже для хром. Есть ли что-нибудь особенное, что нужно сделать при размещении WebApi в приложении для консоли/Windows, чтобы получить документацию автоматически?

(Я включил Xml документации по проекту)

Я теперь прилагается тестовый проект. Пожалуйста, перейдите по ссылке ниже:

Test project

С уважением,

Nas

ответ

1

Ваша проблема не с Swashbuckle, который настроен правильно. Вместо этого это связано с тем, что ваше веб-приложение OWin закрылось к моменту, когда браузер переходит к URI swagger. Ваше заявление использования означает, что веб-приложение закрывается в конце его - задолго до того, как Chrome открылся и перешел на путь чванства. Вам нужно убедиться, что веб-приложение все еще запущено - тогда ваш путь будет действительным (хотя в исходном коде у вас есть разные порты 9000 и 5000 в ваших переменных URL).

+0

Большое спасибо за указание на то, что я не могу поверить, что не обращал внимания на что-то такое основное. Он работает сейчас :) – Nasir

Смежные вопросы