Swashbuckle/Swagger + ASP.Net Core: «Не удалось загрузить определение API»C#

Место общения программистов C#
Ответить
Anonymous
 Swashbuckle/Swagger + ASP.Net Core: «Не удалось загрузить определение API»

Сообщение Anonymous »

Я разрабатываю приложение ASP.NET Core 2 и включаю Swagger. Все работало нормально, пока я не представил метод без явного определения действия HTTP:
public class ErrorController : Controller
{
[Route("/error")]
public IActionResult Index()
{
return StatusCode(500, new Error("Internal error."));
}
}

Когда я запустил приложение с помощью этого метода, появилось следующее сообщение:

Не удалось загрузить определение API.
Ошибки

Ошибка выборки Внутренняя ошибка сервера /swagger/v1/swagger.json

Как только я явно установил, например. [HttpGet] ошибка исчезает. Проблема в том, что мне нужно, чтобы этот метод запускался для всех возможных операций HTTP.
Конечно, я мог бы явно указать все операции, но у меня такое ощущение, что Swagger должен справиться с этим правильно.
Почему Swagger ведет себя таким образом?
Есть ли какая-либо конфигурация, которую я могу использовать?
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My Service", Version = "v1" });
});

app.UseSwagger(c =>
{
c.PreSerializeFilters.Add((swagger, httpReq) => swagger.Host = httpReq.Host.Value);
});

app.UseSwaggerUI(c =>
{
c.RoutePrefix = "swagger"; // serve the UI at root
c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs");
})


Подробнее здесь: https://stackoverflow.com/questions/502 ... definition
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»