#json #api #asp.net-core #.net-core #json.net
#json #API #asp.net-core #.net-ядро #json.net #.net-core
Вопрос:
Итак, у меня есть эта конечная точка:
[HttpGet]
public async Task<ActionResult> Get()
{
var ext = new ApiExtensions();
List<Record> records = await ext.GetRecords();
return Ok(records);
}
Это объект записи:
public class Record
{
public int Id { get; set; }
public string Name { get; set; }
public string CreatedBy { get; set; }
public DateTime? DateCreated { get; set; }
public string LastModifiedBy { get; set; }
public DateTime? LastModifiedDate { get; set; }
}
Просматривая результаты в Fiddler или Postman, я получаю то, что ожидаю увидеть.
Но оба этих инструмента (Fiddler и Postman) дают мне возможность «видеть» данные (body), возвращаемые api, в разных форматах: текст, raw, json, xml и т.д. Итак, что именно API возвращает клиенту? Это просто «необработанные» данные, отображаемые на вкладке raw? Или он возвращает одни и те же данные в разных форматах, и клиент должен использовать правильный?
(Я использую .net Core 3.1.)
Спасибо.
Комментарии:
1. что ж, .netcore, по крайней мере, из 2.2 API, возвращает json по умолчанию, однако вы можете настроить API для возврата xml при запуске. я думаю, что fiddler и postman просто изо всех сил стараются преобразовать JSON в xml, когда вы его выбираете. Если вы заметили, что это неправильный xml, это все равно строка JSON.
Ответ №1:
ASP.NET Core MVC / API поддерживает форматирование данных ответа. Данные ответа могут быть отформатированы с использованием определенных форматов или в ответ на формат, запрошенный клиентом. Встроенный вспомогательный метод Ok возвращает данные в формате JSON:
[HttpGet]
public async Task<ActionResult> GetMovie()
{
return Ok(await _context.Movie.ToListAsync());
}
Вы можете с помощью инструментов разработчика браузера F12 или Postman проверить отображаемый заголовок ответа content-type: application/json; charset=utf-8
.
Более подробную информацию о формате данных ответа см. Формат данных ответа в ASP.NET Основной веб-API.
Но оба этих инструмента (Fiddler и Postman) дают мне возможность «видеть» данные (тело), возвращаемые api в разных форматах: текст, raw, json, xml и т. Д
Что касается формата тела ответа Fiddler и PostMan, я думаю, что это функция инструмента, лучше изменить формат тела ответа.