У меня ASP.NET MVC WebAPI, настроенный на использование OWIN для создания документации.После того, как я выполнил приложение в первый раз, я понял, что файл Json не отражает изменения, сохраненные в файле XML.Любое новое изменение или добавление, которое я сделал на контроллере API, не отражается в файле Json, только в файле XML.Я уже пытался изменить версии установленных пакетов, изменить файл конфигурации Swagger, очистить кэш браузера, изменить браузер, но, похоже, ничего не решает проблему.
Я использую следующие пакеты: Swashbuckle,Swashbuckle.Core и Swashbuckle.OData.Core.
РЕДАКТИРОВАТЬ: Метод регистра SwaggerConfig:
public static void Register(HttpConfiguration _config)
{
_config.EnableSwagger(x =>
{
x.SingleApiVersion("v1", "NexoCS.Nexo.WebApi");
x.IncludeXmlComments(() => new XPathDocument(string.Format(@"{0}\bin\ApiDoc.xml", AppDomain.CurrentDomain.BaseDirectory)));
x.DescribeAllEnumsAsStrings();
x.PrettyPrint();
x.RootUrl(req => req.RequestUri.GetLeftPart(UriPartial.Authority) +
req.GetRequestContext().VirtualPathRoot.TrimEnd('/'));
x.UseFullTypeNameInSchemaIds();
x.OAuth2("OAuth2")
.Description("OAuth2 Implicit Grant")
.Flow("implicit")
.TokenUrl("/token")
.Scopes(scopes =>
{
scopes.Add("read", "Read access to protected resources");
scopes.Add("write", "Write access to protected resources");
});
x.CustomProvider(defaultProvider => new ODataSwaggerProvider(defaultProvider, x, _config));
})
.EnableSwaggerUi(y =>
{
y.EnableOAuth2Support("sampleapi", "samplerealm", "Swagger UI");
y.EnableDiscoveryUrlSelector();
});
}
Startup.cs:
public void Configuration(IAppBuilder app)
{
AutoMapperConfig.Config();
new ApiConfig(app)
.ConfigureCorsMiddleware(ConfigurationManager.AppSettings["cors"])
.ConfigureFormatters()
.ConfigureExceptionHandling()
.ConfigureSwagger()
.ConfigureAuth()
.ConfigureIoc()
.ConfigureRoutes()
.UseWebApi();
}
ConfigureSwagger в ApiConfig:
private readonly HttpConfiguration _configuration;
private readonly IAppBuilder _app;
public ApiConfig(IAppBuilder app)
{
if (app == null) throw new ArgumentNullException(nameof(app));
_app = app;
_configuration = new HttpConfiguration();
}
public ApiConfig ConfigureSwagger()
{
SwaggerConfig.Register(_configuration);
return this;
}