https://github.com/vipwan/biwen.quickapi
Biwen.QuickApi, WebApi,REPR,Headless CMS
https://github.com/vipwan/biwen.quickapi
endpoint headless-cms minimal-api netcore repr webapi
Last synced: 3 months ago
JSON representation
Biwen.QuickApi, WebApi,REPR,Headless CMS
- Host: GitHub
- URL: https://github.com/vipwan/biwen.quickapi
- Owner: vipwan
- License: mit
- Created: 2023-09-20T16:52:10.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-07-31T10:44:39.000Z (6 months ago)
- Last Synced: 2025-09-18T02:54:01.760Z (4 months ago)
- Topics: endpoint, headless-cms, minimal-api, netcore, repr, webapi
- Language: C#
- Homepage:
- Size: 11.5 MB
- Stars: 30
- Watchers: 2
- Forks: 5
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Biwen.QuickApi


[](https://github.com/vipwan/Biwen.QuickApi/blob/master/LICENSE.txt)
[](https://github.com/vipwan/Biwen.QuickApi/pulls)
## 项目介绍
[临时文档地址](http://39.108.3.212:8086/index.html)
Biwen.QuickApi 2+,是一个微型`aspnetcore`开发框架,提供minimalapi的QuickApi封装,提供`IQuickEndpoint`书写minimalapi,
模块化支持`Modular`,`多租户`,发布订阅:`IEvent`,作业调度:`IScheduleTask`,审计:`Auditing`,缓存,LocalLock,`OpenApi` ~~
## 实际应用与示例项目
### 提供MySurvey问卷调查示例项目
点击访问示例项目:[MySurvey](https://github.com/vipwan/MySurvey) - 一个基于 Biwen.QuickApi 构建的完整问卷调查系统,展示了框架在实际业务场景中的应用。
### 提供 Headless CMS模块组件
[Biwen.QuickApi.Contents](https://github.com/vipwan/Biwen.QuickApi/tree/master/extensions/Biwen.QuickApi.Contents) - 一个强大的无头CMS扩展,提供以下功能:
- 灵活的内容模型定义系统
- 多种字段类型支持(文本、Markdown、数字、日期、图片等)
- 内容版本控制和审计跟踪
- 内容渲染服务与自定义视图模板
- 通过Slug友好URL访问内容
- 完整的内容API(创建、查询、更新、删除、预览)
- 内容状态工作流(草稿、发布、归档)
- 基于`Elasticsearch`的全文搜索支持
## 代码示例
### 基础QuickApi示例
```c#
public class MyStore
{
public static Todo[] SampleTodos()
{
return [new(1, "Walk the dog"), new(2, "Buy groceries")];
}
}
[QuickApi("todos")] // 映射到 /api/todos
public class TodoApi : BaseQuickApi
{
public override async ValueTask ExecuteAsync(EmptyRequest request)
{
await Task.CompletedTask;
return MyStore.SampleTodos();
}
}
```
### 带参数的API示例
```c#
public class CreateTodoRequest : BaseRequest
{
[Required]
public string Title { get; set; } = null!;
public bool IsCompleted { get; set; }
}
[QuickApi("todos", Verbs = Verb.POST)]
[OpenApiMetadata("创建待办事项", "添加一个新的待办事项到系统")]
public class CreateTodoApi : BaseQuickApi
{
private readonly ITodoService _todoService;
public CreateTodoApi(ITodoService todoService)
{
_todoService = todoService;
}
public override async ValueTask ExecuteAsync(CreateTodoRequest request, CancellationToken cancellationToken)
{
return await _todoService.CreateAsync(request.Title, request.IsCompleted);
}
}
```
### 使用事件系统示例
```c#
// 定义事件
public record TodoCreatedEvent(Todo Todo) : IEvent;
// 发布事件
[QuickApi("todos", Verbs = Verb.POST)]
public class CreateTodoApi : BaseQuickApi
{
private readonly ITodoService _todoService;
private readonly IPublisher _publisher;
public CreateTodoApi(ITodoService todoService, IPublisher publisher)
{
_todoService = todoService;
_publisher = publisher;
}
public override async ValueTask ExecuteAsync(CreateTodoRequest request)
{
var todo = await _todoService.CreateAsync(request.Title, request.IsCompleted);
// 发布事件
await _publisher.PublishAsync(new TodoCreatedEvent(todo));
return todo;
}
}
// 处理事件
[EventHandler]
public class TodoCreatedEventHandler : IEventHandler
{
private readonly ILogger _logger;
public TodoCreatedEventHandler(ILogger logger)
{
_logger = logger;
}
public Task HandleAsync(TodoCreatedEvent @event)
{
_logger.LogInformation("新的待办事项已创建: {Title}", @event.Todo.Title);
return Task.CompletedTask;
}
}
```
## 设计理念与特点
- **REPR设计模式**:Biwen.QuickApi遵循 REPR 设计(Request-Endpoint-Response),使API开发结构清晰
- **开箱即用**:内置常用功能,无需额外配置即可使用
- **模块化架构**:通过模块化设计,实现功能的即插即用和业务的清晰分离
- **强大的扩展性**:通过扩展接口,可以轻松定制和扩展框架功能
- **约定优于配置**:减少配置代码,提高开发效率
- **完整的文档支持**:下载项目源代码运行`Biwen.QuickApi.DocSite`项目获取详细文档
## 社区与支持
- 欢迎小伙伴们star&issue共同学习进步 [Biwen.QuickApi](https://github.com/vipwan/Biwen.QuickApi)
- 关注作者博客: [作者博客](https://www.cnblogs.com/vipwan/)
## 开发工具
- [Visual Studio 2022 17.11.0 +](https://learn.microsoft.com/zh-cn/visualstudio/releases/2022/release-notes-preview)
- [Visual Studio Code](https://code.visualstudio.com/Download)
- [Net 9.0.0](https://dotnet.microsoft.com/zh-cn/download/dotnet/9.0)
## 依赖环境&库
- Microsoft.AspNetCore.App
- [FluentValidation.DependencyInjectionExtensions](https://www.nuget.org/packages/FluentValidation.DependencyInjectionExtensions)
- [Microsoft.AspNetCore.OpenApi](https://www.nuget.org/packages/Microsoft.AspNetCore.OpenApi/8.0.10)