У меня есть метод API с этой подписью:
public async Task<IActionResult> PostCompanies([FromBody] List<Company> companies)
... и автоматически созданные документы swagger показывают, что JSON должен быть простым массивом:
[
{
"fuelSiteId":228972,
"name": "foo"
},
{
"fuelSiteId":300000010,
"name": "bar"
}
]
Однако, если я отправлю это обратно, это не сработает, и я получу ошибку:
"Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип 'Company', поскольку тип требует объект JSON"
Исправлено добавление массива в фиктивное свойство:
{
data: [
{
"fuelSiteId":228972,
"name": "foo"
},
{
"fuelSiteId":300000010,
"name": "bar"
}
]
}
Но все, что я нахожу на этом сайте, подразумевает, что в этом нет необходимости, и это не то, что вы обычно делаете в REST. Кроме того, это означает, что автоматически сгенерированные документы не должны публиковаться!
Что не так? Мой код API или документы Swagger автоматического поколения или что-то еще?
В идеале я бы предпочел, чтобы мой API принимал «простую» версию, поскольку она кажется более стандартной и более естественной.