我有一个基类,我在我的应用程序中用于内部通信。
public abstract class EndpointBase<TRequest, TResponse>
where TRequest : class, IRequest
where TResponse : class
{
public abstract bool IsPublic { get; }
public abstract string Route { get; }
public abstract Task<TResponse> PerformAction(TRequest request);
}
例如:
internal sealed class UserEnpoint : EndpointBase<UserRequest, UserDto>
{
public override string Route => "/users";
public override bool IsPublic => true;
public override async Task<UserDto> PerformAction(UserRequest request)
{
.... await someContext.Users
.Where(user => user.Id == request.Id)
.FirstOrDefault();
}
}
现在使用最小Api方法,我想自动注册这个基类的所有IsPublic实现作为Api端点。
public static void UseEndpoints(this WebApplication app)
{
app.MapGet(...Route..., ...PerformAction...);
}
你认为这容易实现吗?最好的方法是什么?
对于这种样式,您应该查看类似https://fast-endpoints.com/
的内容