В настоящее время я разрабатываю API и использую Swashbuckle для создания документации Swagger.Когда я пытаюсь импортировать его в Azure API Management, я получаю следующие ошибки, если использую [FromBody] для значений в параметрах, например, методов HttpPut или HttpPost:
Parsing error(s): Non-unique array item at index 15. Path 'paths./{Id}/settings.put.consumes[15]', line 1, position 2115.
Если удалить или заменитьс [FromQuery] он работает и может быть импортирован.Я использую .Net Core 2.1 и Swashbuckle.AspNetCore 4.0.1 и Swashbuckle.OData 3.5.0, поскольку проект поддерживает Odata.
Метод выдачи ошибки выглядит следующим образом:
/// <summary>
/// AddOrUpdateSetting
/// </summary>
/// <remarks>
/// Updates a user's settings.
/// </remarks>
/// <param name="contactId"></param>
/// <param name="setting"></param>
/// <response code="200">The user setting was successfully updated.</response>
/// <response code="400">Bad request (modelstate was invalid).</response>
/// <response code="500">The request could not be processed.</response>
[ProducesResponseType( typeof(IActionResult), Status200OK )]
[ProducesResponseType( Status400BadRequest )]
[ProducesResponseType( Status500InternalServerError )]
[HttpPut( "{contactId}/settings" )]
public async Task<IActionResult> AddOrUpdateSetting(string contactId, [FromBody] UserSetting setting)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
await _notificationDataRepository.AddOrUpdateUserSetting(setting);
return Ok(setting);
}
Проект был создан с использованием шаблона API в Visual Studio.Это какая-то ошибка в версии Cash Swashbuckle или почему это происходит?FromBody не является чем-то необычным и должен быть поддержан.Это ограничение или нужно что-то еще?