REST 传输
基于 ASP.NET Minimal API,TKWF 自动为所有 Controller 生成 REST 端点。
启用 REST
builder.ConfigWebAppDomain<AppUserInfo, AppDomainInitializer>()
.UseWebSession()
.UseRestApiService<AppUserInfo>() // ← 自动注册 REST 端点
.Build();
自动生成的端点
标注驱动模式
[GenerateController]
public class TodoService(DomainUser<AppUserInfo> user)
: DomainServiceBase<AppUserInfo>(user)
{
public async Task<List<Todo>> GetTodosAsync()
{
return await Repository.SelectAsync();
}
public async Task<Todo> CreateTodoAsync(string title, string content)
{
// ...
}
}
自动生成:
GET /api/todo/getTodos
POST /api/todo/createTodo {"title": "...", "content": "..."}
契约先行模式
手写 Controller 同样自动注册:
public class TodoController<TUserInfo> : ControllerBase<TUserInfo>
where TUserInfo : IUserInfo
{
public async Task<List<Todo>> GetTodosAsync() { ... }
}
路由约定
| 方法签名 | HTTP 方法 | 路由 |
|---|---|---|
GetTodosAsync() |
GET | /api/{controller}/getTodos |
CreateTodoAsync(input) |
POST | /api/{controller}/createTodo |
UpdateTodoAsync(id, input) |
PUT | /api/{controller}/updateTodo |
DeleteTodoAsync(id) |
DELETE | /api/{controller}/deleteTodo |
路由前缀可配置:
options.Rest = new RestApiOptions
{
RoutePrefix = "api/v1",
EnableOpenApi = true, // 自动生成 OpenAPI 文档
};