Netor.MicroService.Abstractions 1.1.5

Netor.MicroService.Abstractions

��Ŀ����

Netor.MicroService.Abstractions �ṩ����΢����������Ļ�������������ͳһ���ظ�ʽ����ݵ� HttpContext ���ʡ�ȫ����������Ӧ��ʽ�����õȣ������� Minimal API ������ʵ��ҵ��˵㡣

������

Netor.MicroService.Generator
Install-Package Netor.MicroService.Generator
dotnet add package Netor.MicroService.Generator

Netor.MicroService.Generator
Install-Package Netor.MicroService.Abstractions
dotnet add package Netor.MicroService.Abstractions
  • ͳһ���������ṩ Success/Failed/Json ��ݷ�����Լ��ͳһ��Ӧ��ʽ��
  • ��������ķ��ʣ�ͨ�� HttpContext/Request/Response ���ٷ������������ģ����������ϲ���ע�룩��
  • ������Ĭ�ϲ��ԣ�ͨ�� MicroServiceOptions.ValueFrom ָ��Ĭ�ϲ���ֵ��Դ��
  • ��������ǣ��ṩ [Controller] �������ڲ�����������֣����������ϲ�������·���뼤���
  • AOT �Ѻã�����ʹ�÷��䣬���� AOT ������
  • ����ע��֧�֣�֧��ͨ�� [FromServices] ����ע�����ʵ����
  • �쳣������ͨ�� MicroServiceOptions.UseExceptionHandler ����ȫ���쳣�����봦����
  • �������أ�ͨ�� MicroServiceOptions.UseRequestHandler ����ȫ���������ء�
  • IP ��ַ��֤��ͨ�� MicroServiceOptions.UseIPAddressVerifyHandler �������� IP ��������֤��
  • ��Ȩ��֤��ͨ�� MicroServiceOptions.UseAuthorizeHandler ����������Ȩ��֤��
  • ��Ӧ��ʽ����ͨ�� MicroServiceOptions.Formater ����ͳһ��Ӧ��ʽ��
  • ֧�� .NET 8 Minimal API ���
  • ֧�� ASP.NET Core MVC ���ԣ��� [FromQuery]��[FromForm]��[FromBody]��[FromHeader]��[FromRoute]��[FromServices] �ȣ���
  • ֧���첽���������������� Task����
  • ֧�ֿ������뷽������� [AllowAnonymous] ���ԣ������������ʡ�
  • ����Դ�����������Լ򻯿�������·�ɵ�ע�ᣨ�� Netor.MicroService.Generator����

�����ܹ�

  • ���ԣ�C#
  • Ŀ���ܣ�.NET 8
  • ����������
    • ASP.NET Core Abstractions��IResult��HttpContext��MVC ���ԣ�
    • Microsoft.Extensions.Options�����ð󶨣�

��Ŀ�ṹ���뵱ǰ����һ�£�

  • Controllers
    • BaseController��ͳһ�����������ķ��ʵĻ��ࡣ
  • Attributes
    • ControllerAttribute����ǿ��������ͣ����ڿ��������֡�
  • Extensions
    • MicroServiceOptions��ȫ��ѡ�ValueFrom��Formater��OnRequest����
    • TypeExtensions���������ж���AOT �Ѻã���
  • Enums
    • ValueFrom������Ĭ�ϰ���Դö�١�

ʹ�÷���

  1. ��Ӧ�������� MicroServiceOptions����ѡ��
var builder = WebApplication.CreateBuilder(args);
builder.Services
    .AddLogging()
    // ����΢����֧�֣����룩
    .AddMicroService(options =>
    {
        options.ValueFrom = ValueFrom.FromForm;
        //����ȫ������������
        options.UseRequestHandler(OnRequestHandler);
        //����IP��ַ��֤������
        options.UseIPAddressVerifyHandler(OnIPAddressVerifyHandler);
        //һ�����ø��������������������ͨ����Ȩ��֤����������·�������Ϊ�����������ʡ�
        options.UseAuthorizeHandler(OnAuthorizeHandler);
        //����ȫ���쳣������
        options.UseExceptionHandler(OnExceptionHandler);
    });


var app = builder.Build();
// ����΢�����м�������룩
app.UseMicroService();
await app.RunAsync();

//ȫ������������
Task<(bool status,string message)> OnRequestHandler(HttpContext context)
{
    context.RequestServices.GetRequiredService<ILogger<Program>>().LogWarning("OnRequestHandler");
    return Task.FromResult((true, "ok"));
}
//IP��ַ��֤
Task<(bool status, string message)> OnIPAddressVerifyHandler(string ipAddress,HttpContext context)
{
    context.RequestServices.GetRequiredService<ILogger<Program>>().LogWarning("OnIPAddressVerifyHandler:{ip}",ipAddress);
    return Task.FromResult((true, "ok"));
}
//��Ȩ��֤
Task<(bool status, string message)> OnAuthorizeHandler(HttpContext context)
{
    context.RequestServices.GetRequiredService<ILogger<Program>>().LogWarning("OnAuthroan");
    return Task.FromResult((true, "ok"));
}
//ȫ���쳣������
Task<(bool status, int code, string message)> OnExceptionHandler(Exception ex, IServiceProvider service)
{
    service.GetRequiredService<ILogger<Program>>().LogError(ex,"OnExceptionHandler");
    return Task.FromResult((true,500, "ok"));
}
  1. �����������Minimal API ��񣬷��� IResult��
using Microsoft.AspNetCore.Mvc;
using Netor.MicroService;
// ���� 1. [Controller]
// ���� 2. partial
[Controller]       // ��־����Ϊ������
//[AllowAnonymous] �������������������������
public partial class UserController 
{
    // [����ע��] ͨ������ע���ȡ��־ʵ�� 
    [FromServices]
    public ILogger<OrderController> Logger { get; set; }=default!;

    //[AllowAnonymous] ��������������������
    [HttpGet("/users")]
    public IResult Index()
        => Success(new { items = Array.Empty<object>(), total = 0 });

    [HttpPost("/users")]
    public IResult Create([FromForm] string name)
        => string.IsNullOrWhiteSpace(name)
            ? Failed("name is required", 400)
            : Success(new { id = Guid.NewGuid(), name });
}

˵����

  • BaseController �ṩ Success/Failed/Json ��ݷ����� HttpContext �������ԡ�
  • HttpContext �����������ϲ��ܣ�������������/����������ִ��ǰע�롣
  • ͳһ��Ӧ��ʽ��ͨ�� MicroServiceOptions.Formater ȫ�ֶ��ơ�

����

��ӭͨ�� Issue �� Pull Request ���빱�ס�

No packages depend on Netor.MicroService.Abstractions.

Version Downloads Last updated
1.2.5 19 10/30/2025
1.2.4 8 09/29/2025
1.2.3 2 09/29/2025
1.2.2 7 09/26/2025
1.2.1 3 09/26/2025
1.2.0 4 09/26/2025
1.1.9 5 09/24/2025
1.1.8 18 09/07/2025
1.1.7 17 09/03/2025
1.1.6 9 09/03/2025
1.1.5 7 09/02/2025
1.1.4 8 09/02/2025
1.1.3 6 09/02/2025
1.1.2 9 09/01/2025
1.0.9 7 09/01/2025
1.0.7 10 09/01/2025
1.0.6 9 09/01/2025
1.0.5 7 09/01/2025
1.0.3 9 09/01/2025
1.0.2 8 09/01/2025
1.0.1 8 09/01/2025
1.0.0 8 09/01/2025