Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На заметку! Строго говоря, методы действий могут возвращать широкий диапазон форматов. Формат JSON рассматривается в книге из-за своей популярности.
Результаты ответов в формате JSON
Большинство служб REST получают и отправляют данные клиентам с применением формата JSON. Ниже приведен простой пример данных JSON, состоящих из двух значений:
[  "value1",  "value2"]На заметку! Сериализация JSON с использованием
System.Text.JsonСлужбы API также применяют коды состояния HTTP для сообщения об успехе или неудаче. Некоторые вспомогательные методы для возвращения кодов состояния HTTP, доступные в классе
ControllerBaseЧтобы подготовиться к последующим примерам, создайте в проекте
AutoLot.ApiControllersValuesController.csusing System.Collections.Generic;using Microsoft.AspNetCore.Mvc;[Route("api/[controller]")][ApiController]public class ValuesController : ControllerBase{}На заметку! В среде Visual Studio для контроллеров предусмотрены шаблоны. Чтобы получить к ним доступ, щелкните правой кнопкой мыши на имени каталога
ControllersAutoLot.ApiВ коде устанавливается маршрут для контроллера с использованием значения (
api[controller]www.skimedic.com/api/valuesApiControllerControllerBaseControllerControllerBaseControllerControllerBaseСуществует несколько способов возвращения содержимого в формате 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.ApiValuesController
Вспомните, что при определении маршрутов суффикс
ControllerValuesControllerValuesValuesControllerДля выполнения одного из методов щелкните на кнопке GET, на кнопке Try it out (Опробовать) и на кнопке Execute (Выполнить). После выполнения метода пользовательский интерфейс обновится, чтобы отобразить результаты; наиболее важная часть пользовательского интерфейса Swagger показана на рис. 30.2.

Вы увидите, что выполнение каждого метода приводит к получению тех же самых результатов JSON.
Атрибут ApiController
Атрибут
ApiControllerControllerBase