如何将dotnet Minimal APIs动态注册端点变为?
摘要:dotnet Minimal APIs实现动态注册端点 前言 之前使用.Net的Minimal Apis框架开发了SharpIcoWeb图片转ico项目,也是初次使用这个最小Api框架,使用下来的感受就是小项目用起来非常舒服,很轻量。 在之
dotnet Minimal APIs实现动态注册端点
前言
之前使用.Net的Minimal Apis框架开发了SharpIcoWeb图片转ico项目,也是初次使用这个最小Api框架,使用下来的感受就是小项目用起来非常舒服,很轻量。
在之前的项目中,我都是手动去注册端点,比如我创建了一个端点类IcoEndpoints
public static class IcoEndpoints
{
public static void MapIcoEndpoints(this WebApplication app)
{
var group = app.MapGroup("/api");
group.MapGet(...)
}
}
然后我会在Program.cs中注册这个端点类
app.MapIcoEndpoints();
那么如果不想每个端点类都通过手动去注册,就可以使用动态注册的方法,动态注册的原理是通过反射和扩展方法来完成注册。
动态注册
本文就是使用基于接口的自动注册,还可以根据约定端点类命名、特性、标记去实现注册。
文件层级结构如下:
SharpIcoWeb
├── Endpoints
│ ├── Internal
│ │ ├── EndpointExtensions.cs
│ │ ├── IEndpoint.cs
│ ├── IcoEndpoints.cs
│ ├── testEndpoints.cs
├── Program.cs
接口类
首先目录创建完成后,去创建IEndpoint接口类,让每个端点类就去实现这个接口。
