Язык программирования 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

Вспомните, что при определении маршрутов суффикс
Controller
ValuesController
Values
ValuesController
Для выполнения одного из методов щелкните на кнопке GET, на кнопке Try it out (Опробовать) и на кнопке Execute (Выполнить). После выполнения метода пользовательский интерфейс обновится, чтобы отобразить результаты; наиболее важная часть пользовательского интерфейса Swagger показана на рис. 30.2.

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