Приветствую! Решил написать простой WEB API на С#. Создал тестовую модель данных и контроллер :
public class FlugController : ApiController
{
Flug[] Flugen = new Flug[]
{
new Flug { IdFlug=1, MarcFlug = "Boeng", JareFlug = "2010" },
new Flug { IdFlug=2, MarcFlug = "AirLine", JareFlug = "2010" },
new Flug { IdFlug=3, MarcFlug = "Aero", JareFlug = "2010" },
};
public IEnumerable<Flug> GetAllFlug()
{
return Flugen;
}
public IHttpActionResult GetFlug(int id)
{
Flug FlugByID = Flugen.FirstOrDefault((c)=>c.IdFlug == id);
if (FlugByID != null)
return Ok(FlugByID);
else return NotFound();
}
}
Все работает нормально за исключением, того что данные возвращаются в xml формате :
<ArrayOfFlug xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebApplication2.Models">
<Flug>
<IdFlug>1</IdFlug>
<JareFlug>2010</JareFlug>
<MarcFlug>Boeng</MarcFlug>
</Flug>
<Flug>
<IdFlug>2</IdFlug>
<JareFlug>2010</JareFlug>
<MarcFlug>AirLine</MarcFlug>
</Flug>
<Flug>
<IdFlug>3</IdFlug>
<JareFlug>2010</JareFlug>
<MarcFlug>Aero</MarcFlug>
</Flug>
</ArrayOfFlug>
В принципе нормально,но xml слишком многословен. Вопрос - как переделать API что бы возвращал данные в JSON ?
Есть такой заголовок - Accept
, вы можете его отправить вместе с вашим GET
запросом и указать его значение как application/json
. Когда WEB.API
будет считывать ваш запрос, оно считает в том числе и заголовок, что вы отправили. И если вы ничего сами явно не указывали, то WEB.API
будет выдавать ответ в соответствии с тем заголовком, что вы прислали, то есть в виде json
.
Если же вы открываете ваш URL просто в браузере, то ваш браузер скорее всего отправляет этот заголовок со значением text\html
. Чтобы в браузере увидеть ответ вашего контроллера в json
, для asp.net web api
надо в конфиге прописать, что мол даже если тип контента запрашивается text\html
, то все равно возвращать json
. Как это сделать написано тут и тут. В частности, вы можете добавить в конфигурацию вашего приложения следующее
config.Formatters.JsonFormatter.SupportedMediaTypes
.Add(new MediaTypeHeaderValue("text/html") );
Виртуальный выделенный сервер (VDS) становится отличным выбором
Помогите пожалуйстаМожно ли в reportviewer после печати отчета с некоторыми скрытыми полями, сделать экспорт всех полей и скрытых тоже? Смысл в чем
I organized form where I want to input information about organizationI organized my communication form with database in the following way
При отрисовке линий у них явно видно как они соскакивают, как рисовать нормально? Чтобы не было острых углов и линии были плавные?