]
}
}
Такое поведение можно отключить через конфигурацию в методе ConfigureServices()
класса Startup
:
services.AddControllers()
.ConfigureApiBehaviorOptions(options =>
{
options.SuppressModelStateInvalidFilter = true;
});
Выведение источников для привязки параметров
Механизм привязки моделей будет логически выводить источники извлечения значений на основе соглашений, описанных в табл. 30.1.
Такое поведение можно отключить через конфигурацию в методе Configure Services()
класса Startup
:
services.AddControllers().ConfigureApiBehaviorOptions(options =>
{
// Подавить все выведение источников для привязки.
options.SuppressInferBindingSourcesForParameters= true;
// Подавить выведение типа содержимого multipart/form-data.
options. SuppressConsumesConstraintForFormFileParameters = true;
});
Детальные сведения о проблемах для кодов состояния ошибок
ASP.NET Core трансформирует результат ошибки (состояние 400 или выше) в результат с помощью типа ProblemDetails
, который показан ниже:
public class ProblemDetails
{
public string Type { get; set; }
public string Title { get; set; }
public int? Status { get; set; }
public string Detail { get; set; }
public string Instance { get; set; }
public IDictionary
= new Dictionary
}
Чтобы протестировать это поведение, добавьте в ValuesController
еще один метод:
[HttpGet("error")]
public IActionResult Error()
{
return NotFound();
}
Запустите приложение и посредством пользовательского интерфейса Swagger выполните новую конечную точку error
. Результатом по-прежнему будет код состояния 404 (Not Found), но в теле ответа возвратится дополнительная информация. Ниже приведен пример ответа (ваше значение traceId
будет другим):
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
"title": "Not Found",
"status": 404,
"traceId": "00-9a609e7e05f46d4d82d5f897b90da624-a6484fb34a7d3a44-00"
}
Такое поведение можно отключить через конфигурацию в методе ConfigureServices()
класса Startup
:
services.AddControllers()
.ConfigureApiBehaviorOptions(options =>
{
options.SuppressMapClientErrors = true;
});
Когда поведение отключено, вызов конечной точки error возвращает код состояния 404 без какой-либо дополнительной информации.
Обновление настроек Swagger/OpenAPI
Продукт Swagger (также известный как OpenAPI) является стандартом с открытым кодом для документирования служб REST, основанных на API. Два главных варианта для добавления Swagger к API-интерфейсам ASP.NET Core — Swashbuckle и NSwag. Версия ASP.NET Core 5 теперь включает Swashbuckle в виде части шаблона нового проекта. Документация swagger.json
, сгенерированная для AutoLot.Api
, содержит информацию по сайту, по каждой конечной точке и по любым объектам, задействованным в конечных точках.
Пользовательский интерфейс Swagger базируется на веб-интерфейсе и позволяет интерактивным образом исследовать конечные точки приложения, а также тестировать их (как делалось ранее в этой главе). Его можно расширить, добавляя документацию в сгенерированный файл swagger.json
.
Обновление обращений к Swagger в классе Startup
Стандартный шаблон проекта API добавляет код для генерирования файла swagger.json
в метод ConfigureService()
класса Startup
:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "AutoLot.Api", Version = "v1" });
});
Первое изменение стандартного кода предусматривает добавление метаданных к OpenApiInfo
. Модифицируйте вызов AddSwaggerGen()
следующим образом, чтобы обновить заголовок и добавить описание и сведения о лицензии: