PromericaGT.GTHeadersMiddleware
0.2.1
dotnet add package PromericaGT.GTHeadersMiddleware --version 0.2.1
NuGet\Install-Package PromericaGT.GTHeadersMiddleware -Version 0.2.1
<PackageReference Include="PromericaGT.GTHeadersMiddleware" Version="0.2.1" />
<PackageVersion Include="PromericaGT.GTHeadersMiddleware" Version="0.2.1" />
<PackageReference Include="PromericaGT.GTHeadersMiddleware" />
paket add PromericaGT.GTHeadersMiddleware --version 0.2.1
#r "nuget: PromericaGT.GTHeadersMiddleware, 0.2.1"
#:package PromericaGT.GTHeadersMiddleware@0.2.1
#addin nuget:?package=PromericaGT.GTHeadersMiddleware&version=0.2.1
#tool nuget:?package=PromericaGT.GTHeadersMiddleware&version=0.2.1
GTHeaderMiddleware
Contenido
Descripción
Librería que se encarga de validar y agregar los encabezados "headers" en las peticiones HTTP, para los distintos proyectos ASP.NET.
Características
- Validación de encabezados HTTP de entrada y salida.
- Configuración de encabezados personalizados.
- Facil integración en proyectos ASP.NET Core.
Encabezados de entrada
Los encabezados que valida, por defecto, son los siguientes:
Nombre | Propósito | Requerido |
---|---|---|
channelCode |
Identificación del sistema origen | Sí |
userCode |
Identificación del usuario | Sí |
transactionNumber |
Trazabilidad de solicitudes | No |
agencyCode |
Ubicación/origen contextual | No |
accept-language |
Preferencia de idioma | No |
ℹ️ Soporta cabeceras adicionales para casos de uso específicos (consultar documentación interna).
Encabezados de salida
Los encabezados que agrega, por defecto, son los siguientes:
Nombre | Propósito |
---|---|
esbMessageID |
Identificador único de transacción |
Instalación
- Agrega la librería a tu proyecto, puedes hacerlo a través de NuGet Package Manager Console ejecutando el siguiente comando:
dotnet add package GTHeaderMiddleware
- Si es una referencia local: Agrega el proyecto de la librería a tu solución y referencia el proyecto en tu aplicación.
- Asegúrate de que tu proyecto use .NET 8 o una versión compatible con la librería.
Uso
Para la integración de la librería en el proyecto, se debe agregar el middleware en la clase Program.cs
del proyecto.
A continuación se muestra un ejemplo de cómo hacerlo:
using GTHeaderMiddleware.Exceptions;
using GTHeaderMiddleware.Extensions;
using GTHeaderMiddleware.Interfaces;
var builder = WebApplication.CreateBuilder(args);
#region Configuración de los encabezados de respuesta
builder.Services.AddHeaderLibrary(config =>
{
config.GenerateEsbMessageId = ctx => Guid.NewGuid().ToString();
});
#endregion Configuración de los encabezados de respuesta
var app = builder.Build();
#region Manejo de excepciones para encabezados
// Agregar el middleware de encabezados.
app.Use(async (context, next) =>
{
try
{
await next(context);
}
catch (Exception ex)
{
var serviceProvider = context.RequestServices;
var headerMapper = context.RequestServices.GetRequiredService<IHeaderMapper<GTHeaderMiddleware.Models.RequestHeaders>>();
// Manejo de errores personalizado.
context.Response.Clear();
context.Response.ContentType = "application/json";
if (ex is HeaderValidationException headerEx)
{
var error = new
{
message = "Error de validación de encabezados" ,
detail = headerEx.Errors
};
context.Response.StatusCode = StatusCodes.Status400BadRequest;
await context.Response.WriteAsJsonAsync(error);
}
else
{
var error = new
{
message = ex.Message ?? "Error interno del servidor",
detail = ex.InnerException?.Message ?? string.Empty
};
context.Response.StatusCode = StatusCodes.Status500InternalServerError;
await context.Response.WriteAsJsonAsync(error);
}
}
});
app.UseHeaderLibrary<GTHeaderMiddleware.Models.RequestHeaders>();
#endregion Manejo de excepciones para encabezados
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
Manejo de errores
El middleware también permite manejar errores de manera personalizada.
Puedes definir la lógica de manejo de errores dentro del bloque async (context, exception) => { ... }
al agregar el middleware.
Actualizaciones
Para mantener la librería actualizada, puedes ejecutar el siguiente comando en la consola de NuGet Package Manager:
dotnet update package GTHeaderMiddleware
Esto actualizará la librería a la última versión disponible en NuGet.
Product | Versions 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. 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. |
-
net8.0
- Microsoft.AspNetCore.Http (>= 2.3.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.0)
- Microsoft.Extensions.DependencyInjection (>= 9.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.