AArkhipenko.Core 7.0.0

dotnet add package AArkhipenko.Core --version 7.0.0
                    
NuGet\Install-Package AArkhipenko.Core -Version 7.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AArkhipenko.Core" Version="7.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AArkhipenko.Core" Version="7.0.0" />
                    
Directory.Packages.props
<PackageReference Include="AArkhipenko.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AArkhipenko.Core --version 7.0.0
                    
#r "nuget: AArkhipenko.Core, 7.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=AArkhipenko.Core&version=7.0.0
                    
Install AArkhipenko.Core as a Cake Addin
#tool nuget:?package=AArkhipenko.Core&version=7.0.0
                    
Install AArkhipenko.Core as a Cake Tool

AArkhipenko.Core

Nuget-проект с базовым функционалом

Базовые исключения

  1. Ошибка задания параметров запроса BadRequestException
  2. Не найдена сущность NotFoundException
  3. Ошибка авторизации AuthorizationException

Методы расширения

Все методы расширения находятся здесь

ИД запроса

На каждый запрос к АПИ добавляет в заголовки Request-Chain-Id с ИД запроса

Такой подход позволяет:

  • находить в логах данные только по одному запросу
  • отслеживать цепочку вызовов в микросервисной системе

Подключение:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();
...
var app = builder.Build();
// Использование прослойки, которая добавляет в заголовки ИД запроса
app.UseRequestChainMiddleware();
...
app.MapControllers();

app.Run();

Контроль состояния программы

Добавление АПИ контроля состояния программы Запрос http://localhost:5066/check вернет информацию о состоянии программы Healthy

Подключение:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
// Добавление АПИ контроля состояния программы
builder.Services.AddCustomHealthCheck();
...
var app = builder.Build();
// Использование прослойки контроля состояния программы
app.UseCustomHealthCheck();
...
app.MapControllers();

app.Run();

Версионирование АПИ

В АПИ добавляется информация о версии, что позволяет группировать АПИ по версиям

Подключение:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
// Добавление версионирования
builder.Services.AddVersioning();
...
var app = builder.Build();
...
app.MapControllers();

app.Run();

Единая обработка исключений

Добавление прослойки обработки исключений на самом нижнем уровне

Такой подход позволяет:

  • реагировать на все исключения в одном месте
  • возращать информацию о исключениях в одном виде
  • менять http статус ответа в зависимости от типа исключения

Подключение:


var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
...
var app = builder.Build();
// Использование простойки, которая обрабатывает исключения
app.UseExceptionMiddleware();
...
app.MapControllers();

app.Run();

Логирование

Nuget-пакет имеет дополнительный функционал, который позволяет расширить логирования

Возможности:

  • обогащение лога информацией о начале и завершении выполнении метода
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on AArkhipenko.Core:

Package Downloads
AArkhipenko.Keycloak

Package Description

AArkhipenko.Logging

Package Description

AArkhipenko.Swagger

Package Description

AArkhipenko.UserHelper

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
7.0.0 149 4/27/2025
0.1.2 141 4/27/2025
0.1.1 201 4/13/2025 0.1.1 is deprecated because it has critical bugs.
0.1.0 107 4/12/2025