Я пытаюсь настроить мой веб-API для использования согласования содержимого, но у меня возникают некоторые проблемы.
Ниже приведен мой код конфигурации.
services
.AddControllers(config =>
{
config.ReturnHttpNotAcceptable = true;
)
.AddXmlSerializerFormatters()
.AddNewtonsoftJson(config=>
{
config.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
И мой контроллер
[Route("api/test")]
[ApiController]
[Produces("application/xml", "application/json")]
public class TestController : ControllerBase
{
[HttpGet("{id}", Name = "Get")]
public async Task<ActionResult<Test>> Get([FromRoute] string id)
{
return Ok(await _store.Get(new Guid(id)));
}
}
Запрос выполняется через почтальона с использованием следующих заголовков запроса
Accept : application/xml
Моя конечная точка получает удар, но когда возвращается результат, я получаю 406 Неприемлемо.
Я не установил никаких дополнительных пакетов, кроме Microsoft.AspNetCore. Mvc .Newtonsoft Json, только с использованием apis witch, поставляемой с netcore3.1.
Я что-то упустил?