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

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

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

177 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

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

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле. Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных. Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

    1 ... 381 382 383 384 385 386 387 388 389 ... 407
    Перейти на страницу:
    Вот пример:

    {

      "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",

      "title": "One or more validation errors occurred.",

      "status": 400,

      "traceId": "|7fb5e16a-4c8f23bbfc974667.",

      "errors": {

        "": [

          "A non-empty request body is required."

        ]

      }

    }

    Такое поведение можно отключить через конфигурацию в методе ConfigureServices() класса Startup:

    services.AddControllers()

        .ConfigureApiBehaviorOptions(options =>

        {

            options.SuppressModelStateInvalidFilter = true;

        });

    Выведение источников для привязки параметров

    Механизм привязки моделей будет логически выводить источники извлечения значений на основе соглашений, описанных в табл. 30.1.

    Такое поведение можно отключить через конфигурацию в методе Configure Services() класса Startup:

    services.AddControllers().ConfigureApiBehaviorOptions(options =>

    {

      // Подавить все выведение источников для привязки.

      options.SuppressInferBindingSourcesForParameters= true;

      // Подавить выведение типа содержимого multipart/form-data.

      options. SuppressConsumesConstraintForFormFileParameters = true;

    });

    Детальные сведения о проблемах для кодов состояния ошибок

     ASP.NET Core трансформирует результат ошибки (состояние 400 или выше) в результат с помощью типа ProblemDetails, который показан ниже:

    public class ProblemDetails

    {

      public string Type { get; set; }

      public string Title { get; set; }

      public int? Status { get; set; }

      public string Detail { get; set; }

      public string Instance { get; set; }

      public IDictionary<string, object> Extensions { get; }

        = new Dictionary<string, object>(StringComparer.Ordinal);

    }

    Чтобы протестировать это поведение, добавьте в ValuesController еще один метод:

    [HttpGet("error")]

    public IActionResult Error()

    {

      return NotFound();

    }

    Запустите приложение и посредством пользовательского интерфейса Swagger выполните новую конечную точку error. Результатом по-прежнему будет код состояния 404 (Not Found), но в теле ответа возвратится дополнительная информация. Ниже приведен пример ответа (ваше значение traceId будет другим):

    {

      "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",

      "title": "Not Found",

      "status": 404,

      "traceId": "00-9a609e7e05f46d4d82d5f897b90da624-a6484fb34a7d3a44-00"

    }

    Такое поведение можно отключить через конфигурацию в методе ConfigureServices() класса Startup:

    services.AddControllers()

      .ConfigureApiBehaviorOptions(options =>

      {

        options.SuppressMapClientErrors = true;

      });

    Когда поведение отключено, вызов конечной точки error возвращает код состояния 404 без какой-либо дополнительной информации.

    Обновление настроек Swagger/OpenAPI

    Продукт Swagger (также известный как OpenAPI) является стандартом с открытым кодом для документирования служб REST, основанных на API. Два главных варианта для добавления Swagger к API-интерфейсам ASP.NET Core — Swashbuckle и NSwag. Версия ASP.NET Core 5 теперь включает Swashbuckle в виде части шаблона нового проекта. Документация swagger.json, сгенерированная для AutoLot.Api, содержит информацию по сайту, по каждой конечной точке и по любым объектам, задействованным в конечных точках.

    Пользовательский интерфейс Swagger базируется на веб-интерфейсе и позволяет интерактивным образом исследовать конечные точки приложения, а также тестировать их (как делалось ранее в этой главе). Его можно расширить, добавляя документацию в сгенерированный файл swagger.json.

    Обновление обращений к Swagger в классе Startup

    Стандартный шаблон проекта API добавляет код для генерирования файла swagger.json в метод ConfigureService() класса Startup:

    services.AddSwaggerGen(c =>

    {

      c.SwaggerDoc("v1", new OpenApiInfo { Title = "AutoLot.Api", Version = "v1" });

    });

    Первое изменение стандартного кода предусматривает добавление метаданных к OpenApiInfo. Модифицируйте вызов AddSwaggerGen() следующим образом, чтобы обновить заголовок и добавить описание и сведения о лицензии:

    services.AddSwaggerGen(c =>

    {

      c.SwaggerDoc("v1",

        new OpenApiInfo

        {

          Title = "AutoLot Service",

          Version = "v1",

          Description = "Service to support the AutoLot dealer site",

          License = new OpenApiLicense

          {

            Name = "Skimedic Inc",

            Url = new Uri("http://www.skimedic.com")

          }

        });

    });

    Следующий шаг связан с переносом вызовов UseSwagger() и UseSwaggerUI() из блока, предназначенного только для среды разработки, в главный путь выполнения внутри метода Configure(). Кроме того, поменяйте заголовок "AutoLot.Api vl" на "AutoLot Service vl".

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env, 

    ApplicationDbContext context)

    {

      if (env.IsDevelopment())

      {

        // Если среда разработки, тогда отображать отладочную информацию.

        app.UseDeveloperExceptionPage();

        // Первоначальный код:

        // app.UseSwagger();

        // app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json",

        //                                         "AutoLot.Api v1"));

        // Инициализировать базу данных.

        if (Configuration.GetValue<bool>("RebuildDataBase"))

        {

          SampleDataInitializer.ClearAndReseedDatabase(context);

        }

      }

      // Включить промежуточное ПО для обслуживания сгенерированного

      // файла Swagger как конечной точки JSON.

      app.UseSwagger();

      // Включить промежуточное ПО для обслуживания пользовательского

      // интерфейса Swagger (HTML, JS, CSS и т.д.), указывая конечную

      // точку JSON для Swagger

      app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json",

                                                "AutoLot Service v1"); });

      ...

    }

    В предыдущем коде используется Swagger(app.UseSwagger()) и пользовательский интерфейс Swagger(app.useSwaggerUI()). В нем также конфигурируется конечная точка для файла swagger.json.

    Добавление файла XML-документации

    Инфраструктура .NET Core способна генерировать файл XML-документации для вашего проекта, исследуя методы на предмет наличия комментариев с тремя символами прямой косой черты (///). Чтобы включить такую функциональность в Visual Studio, щелкните правой кнопкой мыши на имени проекта AutoLot.Api и в контекстном меню выберите пункт Properties (Свойства). В открывшемся диалоговом окне Properties (Свойства) перейдите на вкладку Build (Сборка), отметьте флажок XML documentation file (Файл XML-документации) и укажите в качестве имени файла AutoLot.Api.xml. Кроме того, введите 1591 в текстовом поле Suppress warnings (Подавлять предупреждения), как показано на рис. 30.3.

    Те же настройки можно вводить прямо в файле проекта. Ниже показан раздел PropertyGroup, который понадобится добавить:

    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

      <DocumentationFile>AutoLot.Api.xml</DocumentationFile>

      <NoWarn>1701;1702;1591;</NoWarn>

    </PropertyGroup>

    Настройка NoWarn с указанием 1591

    1 ... 381 382 383 384 385 386 387 388 389 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


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

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

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


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Лариса Лариса04 июнь 12:43 Да, просто до слез похоже на сериал ,,Даррел,,... Смерть в райском уголке - Эмили Салливан
    2. Stmara Stmara02 июнь 22:44 Приятная история, чтобы скоротать вечер. Любимая книга из последних "Любовь со смертью", также очень понравилась -"Суженная... Сердце космического дракона - Ольга Вадимовна Гусейнова
    3. Alex Alex01 июнь 17:12 💩💩💩🖕🖕🖕🖕🖕🖕🖕... Игровой момент II - Александр Андреевич Бодров
    Все комметарии
    Новинки бесплатной онлайн библиотеки