Yc.Box.Types
1.1.3
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Yc.Box.Types --version 1.1.3
NuGet\Install-Package Yc.Box.Types -Version 1.1.3
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="Yc.Box.Types" Version="1.1.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Yc.Box.Types" Version="1.1.3" />
<PackageReference Include="Yc.Box.Types" />
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 Yc.Box.Types --version 1.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Yc.Box.Types, 1.1.3"
#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.
#:package Yc.Box.Types@1.1.3
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Yc.Box.Types&version=1.1.3
#tool nuget:?package=Yc.Box.Types&version=1.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Yc.Box.Types
Общая библиотека типов и перечислений для проектов YC, включая стандартные обёртки для HTTP API ответов.
Установка
dotnet add package Yc.Box.Types
Что включено
Перечисления (Enums)
ContactMethod
- методы связиContactType
- типы контактовContactTypeHelper
- вспомогательные методы для работы с типами контактовParticipantType
- типы участников
Модели API ответов (Models.ApiResponses)
Стандартные типы для HTTP API ответов, обеспечивающие единообразие в API проектах:
ApiResponse
- базовый класс для успешных ответовApiResponse<T>
- ответ с даннымиApiErrorResponse
- ответ с ошибкамиValidationError
- детализация ошибок валидации
Использование
API Responses
using Yc.Box.Types.Models.ApiResponses;
[ApiController]
[Route("api/[controller]")]
public class ExampleController : ControllerBase
{
[HttpGet]
public IActionResult GetData()
{
var data = new { Name = "Test", Value = 123 };
return this.SuccessResponse(data, "Данные получены");
}
[HttpPost]
public IActionResult CreateData([FromBody] CreateDataRequest request)
{
if (!ModelState.IsValid)
return this.ValidationError();
if (request.Name == null)
return this.ValidationError("Name", "Поле обязательно для заполнения");
// Логика создания...
return this.SuccessResponse("Данные созданы");
}
[HttpGet("{id}")]
public IActionResult GetById(int id)
{
var data = GetDataById(id);
if (data == null)
return this.NotFoundError($"Данные с ID {id} не найдены");
return this.SuccessResponse(data);
}
}
Доступные методы расширения для ControllerBase
SuccessResponse(message)
- успешный ответSuccessResponse<T>(data, message)
- успешный ответ с даннымиValidationError()
- ошибка валидации из ModelStateValidationError(field, message, attemptedValue)
- ошибка валидации для поляNotFoundError(message)
- ошибка "не найдено"InternalServerError(message, details)
- внутренняя ошибка сервераUnauthorizedError(message)
- ошибка авторизацииForbiddenError(message)
- ошибка доступаCustomError(statusCode, message, details)
- кастомная ошибка
Статический класс ApiResponseHelper
public class ExampleService
{
public object ProcessData(object data)
{
try
{
// Логика обработки...
return ApiResponseHelper.Success(data);
}
catch (ValidationException ex)
{
return ApiResponseHelper.ValidationError("Field", ex.Message);
}
catch (Exception ex)
{
return ApiResponseHelper.InternalServerError(ex.Message);
}
}
}
Примеры ответов
Успешный ответ с данными
{
"success": true,
"message": "Данные получены",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": 1,
"name": "Test"
}
}
Ошибка валидации
{
"success": false,
"statusCode": 400,
"message": "Неверные данные",
"timestamp": "2024-01-15T10:30:00Z",
"traceId": "0HN7KOGKF7QHD:00000001",
"errors": [
{
"field": "Name",
"message": "Поле обязательно для заполнения",
"attemptedValue": null
}
]
}
Ошибка "не найдено"
{
"success": false,
"statusCode": 404,
"message": "Данные с ID 123 не найдены",
"timestamp": "2024-01-15T10:30:00Z",
"traceId": "0HN7KOGKF7QHD:00000001"
}
Требования
- .NET 9.0+
- ASP.NET Core (для API Response types)
Версии
- 1.1.3 - Обновлен README с полной документацией для пакета
- 1.1.2 - Добавлен README в NuGet пакет
- 1.1.1 - Перенос ApiResponses в Models, обновление namespace
- 1.1.0 - Добавление типов API ответов
- 1.0.2 - Базовые перечисления
Лицензия
Проект YC Team
Контакты
Для вопросов и предложений обращайтесь к команде разработки YC.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.