Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На заметку! Строго говоря, методы действий могут возвращать широкий диапазон форматов. Формат JSON рассматривается в книге из-за своей популярности.
Результаты ответов в формате JSON
Большинство служб REST получают и отправляют данные клиентам с применением формата JSON. Ниже приведен простой пример данных JSON, состоящих из двух значений:
[
"value1",
"value2"
]
На заметку! Сериализация JSON с использованием
System.Text.Json
Службы API также применяют коды состояния HTTP для сообщения об успехе или неудаче. Некоторые вспомогательные методы для возвращения кодов состояния HTTP, доступные в классе
ControllerBase
Чтобы подготовиться к последующим примерам, создайте в проекте
AutoLot.Api
Controllers
ValuesController.cs
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
}
На заметку! В среде Visual Studio для контроллеров предусмотрены шаблоны. Чтобы получить к ним доступ, щелкните правой кнопкой мыши на имени каталога
Controllers
AutoLot.Api
В коде устанавливается маршрут для контроллера с использованием значения (
api
[controller]
www.skimedic.com/api/values
ApiController
ControllerBase
Controller
ControllerBase
Controller
ControllerBase
Существует несколько способов возвращения содержимого в формате JSON из метода действия. Все приведенные далее примеры возвращают те же самые данные JSON с кодом состояния 200. Различия практически полностью стилистические. Добавьте в свой класс
ValuesController
[HttpGet]
public IActionResult Get()
{
return Ok(new string[] { "value1", "value2" });
}
[HttpGet("one")]
public IEnumerable<string> Get1()
{
return new string[] { "value1", "value2" };
}
[HttpGet("two")]
public ActionResult<IEnumerable<string>> Get2()
{
return new string[] { "value1", "value2" };
}
[HttpGet("three")]
public string[] Get3()
{
return new string[] { "value1", "value2" };
}
[HttpGet("four")]
public IActionResult Get4()
{
return new JsonResult(new string[] { "value1", "value2" });
}
Чтобы протестировать код, запустите приложение
AutoLot.Api
ValuesController
![Язык программирования C#9 и платформа .NET5 - _287.png](/BookBinary/847442/1693038075/_287.png)
Вспомните, что при определении маршрутов суффикс
Controller
ValuesController
Values
ValuesController
Для выполнения одного из методов щелкните на кнопке GET, на кнопке Try it out (Опробовать) и на кнопке Execute (Выполнить). После выполнения метода пользовательский интерфейс обновится, чтобы отобразить результаты; наиболее важная часть пользовательского интерфейса Swagger показана на рис. 30.2.
![Язык программирования C#9 и платформа .NET5 - _288.png](/BookBinary/847442/1693038075/_288.png)
Вы увидите, что выполнение каждого метода приводит к получению тех же самых результатов JSON.
Атрибут ApiController
Атрибут
ApiController
ControllerBase