Я создаю Web Api с Asp.Net Core 2.2
. Я использую swagger
для проверки моих конечных точек. Мои модели постоянно развиваются, и когда я реорганизую какой-то метод, чтобы вернуть другой тип, очень легко пропустить изменение этого типа в контроллере как часть ActionResult<T>
.
Упрощенный пример:
[ProducesResponseType(200)]
[HttpGet]
public ActionResult<string> Get()
{
int myNumber = 1;
return Ok(myNumber);
}
Это будет работать нормально, за исключением того, что в swagger
будет отображаться неверный тип возврата (если string
будет отображаться тип возврата, даже если на самом деле возвращается int
). Есть ли способ создать предупреждение для этой ситуации?
РЕДАКТИРОВАТЬ 1: Предоставить более подробный пример:
public class MyClass
{
public Guid ProductId { get; set; }
public string ProductName { get; set; }
}
public class MyOtherClass
{
public string UserId { get; set; }
public string Username { get; set; }
public DateTime CreationDate { get; set; }
}
[ProducesResponseType(200)]
[HttpGet]
public ActionResult<MyClass> Get()
{
var myOtherClass = new MyOtherClass();
return Ok(myOtherClass);
}
Если я запишу следующее в swagger
, я получу:
Я не ожидал, что это выдаст ошибку, но предупреждение было бы неплохо.
P.S. идея о том, что может быть предупреждение, возникла из пакета Microsoft.AspNetCore.Mvc.Api.Analyzers
, который генерирует предупреждение в следующей ситуации:
[ProducesResponseType(200)]
[HttpGet]
public ActionResult<MyClass> Get()
{
return BadRequest();
}
При сборке я получаю следующее: warning API1000: Action method returns undeclared status code '400'.