在.net Core最小API中自动注册API端点



我有一个基类,我在我的应用程序中用于内部通信。

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/

的内容

相关内容

  • 没有找到相关文章

最新更新