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������Ĭ�ϰ���Դö�١�
ʹ�÷���
- ��Ӧ�������� 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"));
}
- �����������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.
.NET 8.0
- Microsoft.EntityFrameworkCore (>= 9.0.0)
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
- Netor.Extensions.TICollectionExtensions (>= 1.0.5)
| 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 |