Жанры книг
Мы в соц.сетях
ParaKnig📚 » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<< На главную

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Читать онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 594 595 596 597 598 599 600 601 602 ... 642
Перейти на страницу:

На заметку! Строго говоря, методы действий могут возвращать широкий диапазон форматов. Формат JSON рассматривается в книге из-за своей популярности.

Результаты ответов в формате JSON

Большинство служб REST получают и отправляют данные клиентам с применением формата JSON. Ниже приведен простой пример данных JSON, состоящих из двух значений:

[

  &quot;value1&quot;,

  &quot;value2&quot;

]

На заметку! Сериализация JSON с использованием System.Text.Json подробно обсуждалась в главе 20.

Службы API также применяют коды состояния HTTP для сообщения об успехе или неудаче. Некоторые вспомогательные методы для возвращения кодов состояния HTTP, доступные в классе ControllerBase, были перечислены в табл. 29.3. Успешные запросы возвращают коды состояния в диапазоне до 200, причем 200 (ОК) является самым распространенным кодом успеха. В действительности он настолько распространен, что вам не придется возвращать его явно. Если никаких исключений не возникало, а код состояния не был указан, тогда клиенту будет возвращен код 200 вместе с любыми данными.

Чтобы подготовиться к последующим примерам, создайте в проекте AutoLot.Api новый контроллер, добавив в каталог Controllers новый файл по имени ValuesController.cs с показанным ниже кодом:

using System.Collections.Generic;

using Microsoft.AspNetCore.Mvc;

[Route(&quot;api/[controller]&quot;)]

[ApiController]

public class ValuesController : ControllerBase

{

}

На заметку! В среде Visual Studio для контроллеров предусмотрены шаблоны. Чтобы получить к ним доступ, щелкните правой кнопкой мыши на имени каталога Controllers в проекте AutoLot.Api, выберите в контекстном меню пункт AddController (Добавить►Контроллер) и укажите шаблон MVC Controller — Empty (Контроллер MVC — Пустой).

В коде устанавливается маршрут для контроллера с использованием значения (api) и маркера ([controller]). Такой шаблон маршрута будет соответствовать URL наподобие www.skimedic.com/api/values. Атрибут ApiController выбирает несколько специфичных для API средств (раскрываются в следующем разделе). Наконец, класс контроллера наследуется от ControllerBase. Как обсуждалось в главе 29, в инфраструктуре ASP.NET Core все типы контроллеров, доступные в классической версии ASP.NET, были объединены в один класс по имени Controller с базовым классом ControllerBase. Класс Controller обеспечивает функциональность, специфичную для представлений ("V" в MVC), тогда как ControllerBase предлагает оставшуюся базовую функциональность для приложений в стиле MVC.

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

Существует несколько способов возвращения содержимого в формате JSON из метода действия. Все приведенные далее примеры возвращают те же самые данные JSON с кодом состояния 200. Различия практически полностью стилистические. Добавьте в свой класс ValuesController следующий код:

[HttpGet]

public IActionResult Get()

{

  return Ok(new string[] { &quot;value1&quot;, &quot;value2&quot; });

}

[HttpGet(&quot;one&quot;)]

public IEnumerable&lt;string&gt; Get1()

{

  return new string[] { &quot;value1&quot;, &quot;value2&quot; };

}

[HttpGet(&quot;two&quot;)]

public ActionResult&lt;IEnumerable&lt;string&gt;&gt; Get2()

{

  return new string[] { &quot;value1&quot;, &quot;value2&quot; };

}

[HttpGet(&quot;three&quot;)]

public string[] Get3()

{

  return new string[] { &quot;value1&quot;, &quot;value2&quot; };

}

[HttpGet(&quot;four&quot;)]

public IActionResult Get4()

{

    return new JsonResult(new string[] { &quot;value1&quot;, &quot;value2&quot; });

}

Чтобы протестировать код, запустите приложение AutoLot.Api; вы увидите список всех методов из ValuesController в пользовательском интерфейсе (рис. 30.1).

Вспомните, что при определении маршрутов суффикс Controller отбрасывается из имен маршрутов, поэтому конечные точки в ValuesController сопоставляются с Values, а не с ValuesController.

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

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

Атрибут ApiController

Атрибут ApiController, появившийся в версии ASP.NET Core 2.1, в сочетании с классом ControllerBase обеспечивает правила, соглашения и линии поведения, специфичные для REST. Соглашения и линии поведения рассматриваются в последующих разделах.

1 ... 594 595 596 597 598 599 600 601 602 ... 642
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Лариса
Лариса 11.03.2026 - 20:17
Странно,здесь имя девочки Аграфена,а на других сайтах я прослушала три книги этого цикла с именем Дарвина.Зачем менять имя и путать читателей? Опечатка- не Дарвина,  а  Дарина.
Григорий
Григорий 09.04.2025 - 22:24
Лучшая книга всех времен
Женя
Женя 02.04.2025 - 16:08
Любимая книга