все. Я пытаюсь документировать WebApi 2 с помощью пакета Swashbuckle.
Все работает отлично, если API работает сам по себе, то есть localhost/api/swagger приводит меня в ui и localhost/api/swagger/docs/v1 в json.
Однако приложение producation инициализирует этот же проект Webapi, запустив метод webapiconfig этого проекта из global.asax.cs в другом - теперь веб-проекте (основное приложение). Таким образом, api url выглядит как localhost/web/api вместо localhost/api.
Теперь swashbuckle не работает так.
- localhost/api/swagger генерирует ошибку, не может загрузить "API.WebApiApplication", ну конечно
- localhost/web/swagger = 404
- localhost/web/api/swagger = 404
Я пытался повсюду искать, но все, что я нашел, обходное решение.
c.RootUrl(req => req.RequestUri.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/").TrimEnd('/'));
К сожалению, это не сработает, теперь, может быть, и должно, и мне просто нужно что-то изменить, но я даже не знаю, что именно ожидает это свойство и на что он должен быть установлен.
Может быть, это даже не применимо - возможно, у нас есть что-то другое или некоторые изменения кода swashbuckle.
Буду признателен за любую помощь, которую вы можете предоставить. Я действительно начинаю любить swagger (и swashbuckle) для документации для отдыха.