Вот что у меня есть. Мой контроллер:
Код: Выделить всё
[ApiController]
[Route("/api/user/[controller]/[action]")]
[Authorize(Roles = ServiceConstants.AuthenticationRoleUser)]
public class DamavandController : BaseController
{
[HttpPost]
public async Task RequestTransactions([FromBody] GetTransactionModel transactionModel)
{
if (transactionModel == null)
{
_logger.LogError("Model binding failed: transactionModel is null.");
return BadRequest("Model binding failed: transactionModel is null.");
}
var transactions = await GetDamavandComponent().GetTransactions(transactionModel.DateFrom, transactionModel.DateTo, transactionModel.TerminalNumber, transactionModel.Limit, transactionModel.Offset);
return Ok(transactions);
}
}
namespace DecaPay.Controllers
{
[ApiController]
[Produces("application/json")]
[ProducesResponseType(StatusCodes.Status200OK)]
public class BaseController : ControllerBase
{
}
}
Код: Выделить всё
public class GetTransactionModel
{
public string DateFrom { get; set; }
public string DateTo { get; set; }
public long TerminalNumber { get; set; }
public int Limit { get; set; } = 25;
public int Offset { get; set; } = 0;
}
Код: Выделить всё
{
"DateFrom": "2024/08/19",
"DateTo": "2024/08/20",
"TerminalNumber": 123456,
"Limit": 25,
"Offset": 0
}
- Добавлен [ApiController] для включения автоматической модели привязка и проверка.
- Подтверждено, что структура полезных данных JSON в Swagger соответствует именам свойств GetTransactionModel.
- Установить значения по умолчанию для предела и смещения.
- Проверено, что Content-Type имеет значение application/json в Swagger.
Подробнее здесь: https://stackoverflow.com/questions/791 ... post-reque