Iskra.Core.Hosting 1.0.75

There is a newer version of this package available.
See the version list below for details.
dotnet add package Iskra.Core.Hosting --version 1.0.75                
NuGet\Install-Package Iskra.Core.Hosting -Version 1.0.75                
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="Iskra.Core.Hosting" Version="1.0.75" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Iskra.Core.Hosting --version 1.0.75                
#r "nuget: Iskra.Core.Hosting, 1.0.75"                
#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.
// Install Iskra.Core.Hosting as a Cake Addin
#addin nuget:?package=Iskra.Core.Hosting&version=1.0.75

// Install Iskra.Core.Hosting as a Cake Tool
#tool nuget:?package=Iskra.Core.Hosting&version=1.0.75                

Iskra.Core.Hosting

Описание

Iskra.Core.Hosting — это компонент фреймворка Iskra, предназначенный для предоставления необходимых услуг хостинга для приложений.

Установка

Чтобы установить пакет, выполните следующую команду в вашем терминале:

dotnet add package Iskra.Core.Hosting

Использование

Настройка EndpointsOptions в appsettings.json

Вот пример того, как настроить EndpointsOptions в файле appsettings.json:

{
	"EndpointsOptions": {
		"KeycloakAddress": "https://keycloak.example.com",
		"ApiGatewayAddress": "https://api-gateway.example.com",
		"UiAddress": "https://ui.example.com",
		"AdditionalAddresses": {
			"Service1": "https://service1.example.com",
			"Service2": "https://service2.example.com"
		}
	}
}

Регистрация EndpointsOptions в DI

Чтобы зарегистрировать EndpointsOptions в контейнере зависимостей, используйте метод расширения AddEndpointsOptions:

using Microsoft.Extensions.DependencyInjection;

var services = new ServiceCollection();
services.AddEndpointsOptions(Configuration);

Пример использования HandleIskraUiExceptionAttribute

Для того чтобы использовать атрибут HandleIskraUiExceptionAttribute, необходимо применить его к контроллеру или методу действия в ASP.NET Core приложении. Ниже приведен пример, как это можно сделать.

Пример контроллера
using Microsoft.AspNetCore.Mvc;

namespace Iskra.Core.Hosting.Controllers;

[ApiController]
[Route("api/[controller]")]
[HandleIskraUiExceptionAttribute] // Применение атрибута к контроллеру
public class ExampleController : ControllerBase
{
    [HttpGet("test")]
    public IActionResult Test()
    {
        try
        {
            // Логика, которая может выбросить IskraException
            throw new IskraException(IskraErrorCode.InvalidInvitationAccessTokenKey, "Ошибка доступа", null);
        }
        catch (IskraException ex)
        {
            // Обработка исключения внутри контроллера (если необходимо)
            return StatusCode(500, ex.Result);
        }
    }
}
Пример метода действия
using Microsoft.AspNetCore.Mvc;

namespace Iskra.Core.Hosting.Controllers;

[ApiController]
[Route("api/[controller]")]
public class ExampleController : ControllerBase
{
    [HttpGet("test")]
    [HandleIskraUiExceptionAttribute] // Применение атрибута к методу действия
    public IActionResult Test()
    {
        try
        {
            // Логика, которая может выбросить IskraException
            throw new IskraException(IskraErrorCode.InvalidInvitationAccessTokenKey, "Ошибка доступа", null);
        }
        catch (IskraException ex)
        {
            // Обработка исключения внутри метода действия (если необходимо)
            return StatusCode(500, ex.Result);
        }
    }
}

В обоих примерах атрибут HandleIskraUiExceptionAttribute применяется к контроллеру или методу действия. Это позволяет автоматически обрабатывать исключения типа IskraException, возвращая соответствующий JSON-ответ с кодом ошибки и сообщением.

Пример ответа

При возникновении исключения IskraException с кодом InvalidInvitationAccessTokenKey, клиент получит следующий JSON-ответ:

{
  "IskraErrorCode": "ISKRA001",
  "Title": null,
  "Subtitle": null,
  "Message": "Ошибка доступа"
}

Этот пример демонстрирует, как интегрировать и использовать атрибут HandleIskraUiExceptionAttribute для обработки исключений в ASP.NET Core приложении.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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 (1)

Showing the top 1 NuGet packages that depend on Iskra.Core.Hosting:

Package Downloads
Iskra.Clients.SequenceGenerator

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.79 160 3/6/2025
1.0.78 153 3/6/2025
1.0.77 163 3/6/2025
1.0.76 151 3/6/2025
1.0.75 160 3/3/2025
1.0.74 123 2/27/2025
1.0.73 59 2/27/2025
1.0.72 61 2/27/2025