Mir-knigi.info
mir-knigi.info » Книги » Компьютеры и интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

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

Тут можно читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте mir-knigi.info (Mir knigi) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

using Swashbuckle.AspNetCore.Annotations;

Атрибут

Produces
задает тип содержимого для конечной точки. Атрибут
ProducesResponseType
использует перечисление
StatusCodes
для указания возможного кода возврата для конечной точки. Модифицируйте метод
Get()
класса
ValuesController
, чтобы установить
application/json
в качестве возвращаемого типа и сообщить о том, что результатом действия будет либо 200 (ОК), либо 400 (Bad Request):

[HttpGet]

<b>[Produces(&quot;application/json&quot;)]</b>

<b>[ProducesResponseType(StatusCodes.Status200OK)]</b>

<b>[ProducesResponseType(StatusCodes.Status400BadRequest)]</b>

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

{

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

}

Хотя атрибут

ProducesResponseType
добавляет в документацию коды ответов, настроить эту информацию невозможно. К счастью, Swashbuckle добавляет атрибут
SwaggerResponse
, предназначенный как раз для такой цели. Приведите код метода
Get()
к следующему виду:

[HttpGet]

[Produces(&quot;application/json&quot;)]

[ProducesResponseType(StatusCodes.Status200OK)]

[ProducesResponseType(StatusCodes.Status400BadRequest)]

<b>[SwaggerResponse(200, &quot;The execution was successful&quot;)]</b>

<b>[SwaggerResponse(400, &quot;The request was invalid&quot;)]</b>

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

{

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

}

Прежде чем аннотации Swagger будут приняты и добавлены в сгенерированную документацию, их потребуется включить. Откройте файл

Startup.cs
и перейдите к методу
Configure()
. Обновите вызов
AddSwaggerGen()
, как показано ниже:

services.AddSwaggerGen(c =&gt;

{

<b>  c.EnableAnnotations();</b>

  ...

});

Теперь, просматривая раздел ответов в пользовательском интерфейсе Swagger, вы будете видеть настроенный обмен сообщениями (рис. 30.5).

Язык программирования C#9 и платформа .NET5 - _292.png

На заметку! В Swashbuckle поддерживается большой объем дополнительной настройки, за сведениями о которой обращайтесь в документацию по ссылке

https://github.com/domaindrivendev/Swashbuckle.AspNetCore
.

Построение методов действий API

Большинство функциональных средств приложения

AutoLot.Api
можно отнести к одному из перечисленных далее методов:

GetOne()

GetAll()

UpdateOne()

AddOnе()

DeleteOne()

Основные методы API будут реализованы в обобщенном базовом контроллере API. Начните с создания нового каталога под названием

Base
в каталоге
Controllers
проекта
AutoLot.Api
. Добавьте в этот каталог новый файл класса по имени
BaseCrudController.cs
. Модифицируйте операторы
using
и определение класса, как демонстрируется ниже:

using System;

using System.Collections.Generic;

using AutoLot.Dal.Exceptions;

using AutoLot.Models.Entities.Base;

using AutoLot.Dal.Repos.Base;

using AutoLot.Services.Logging;

using Microsoft.AspNetCore.Http;

using Microsoft.AspNetCore.Mvc;

using Swashbuckle.AspNetCore.Annotations;

namespace AutoLot.Api.Controllers.Base

{

  [ApiController]

  public abstract class BaseCrudController&lt;T, TController&gt; : ControllerBase

    where T : BaseEntity, new()

    where TController : BaseCrudController&lt;T, TController&gt;

  {

  }

}

Класс является открытым и абстрактным, а также унаследованным от

ControllerBase
. Он принимает два обобщенных параметра типа. Первый тип ограничивается так, чтобы быть производным от
BaseEntity
и иметь стандартный конструктор, а второй — быть производным от
BaseCrudController
(для представления производных контроллеров). Когда к базовому классу добавляется атрибут
ApiController
, производные контроллеры получают функциональность, обеспечиваемую атрибутом.

На заметку! Для этого класса не определен маршрут. Он будет установлен с использованием производных классов.

Конструктор

На следующем шаге добавляются две защищенные переменные уровня класса: одна для хранения реализации интерфейса

IRepo&lt;T&gt;
и еще одна для хранения реализации интерфейса
IAppLogging&lt;T&gt;
. Обе они должны устанавливаться с применением конструктора.

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.


Язык программирования C#9 и платформа .NET5 отзывы

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


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор mir-knigi.info.


Прокомментировать
Подтвердите что вы не робот:*