[ApiVersion(ApiControllerVersion.Version1)]
public class PaymentControllerV1
{
[HttpPost]
[Produces("application/json")]
[SwaggerOperation("POST: make payment")]
[Route("payments/")]
public async Task<IActionResult> PostPayment([FromBody] PaymentRequestDto paymentRequest)
{
}
[HttpGet]
[Produces("application/json")]
[SwaggerOperation("GET: get payment by id")]
[Route("payments/{paymentId}")]
public virtual async Task<IActionResult> GetPayment([FromRoute] int paymentId)
{
}
}
[ApiVersion(ApiControllerVersion.Version2)]
public class PaymentControllerV2: PaymentControllerV1
{
[HttpPost]
[Produces("application/json")]
[SwaggerOperation("POST: make payment")]
[Route("payments/")]
public override async Task<IActionResult> PostPayment([FromBody] PaymentRequestV2Dto paymentRequest)
{
}
}
Во втором случае мы обновили запросы еще несколькими полями для POST PaymentRequestV2Dto.
Теперь, чтобы избежать избыточного кода, мы наследуем PaymentControllerV1.
Если я запускаю приложение и пытаюсь загрузить swagger для V1, он работает, но для V2 - ошибка 500.
Если я получаю вызов от POSTMAN для v2, он работает нормально.
Как устранить ошибку чванства?