feat: 完成云同步、语音控制与多平台扩展基础架构搭建
本次提交完成了项目核心基础架构升级: 1. 新增动态API中间件与权限控制系统,支持匿名/鉴权接口分离 2. 搭建云同步服务体系,包含认证、任务同步、安全策略等核心模块 3. 实现语音控制全链路,从STT/意图解析到命令执行 4. 新增任务类型、附件实体与相关仓储接口 5. 重构前端配置与代理规则,统一后端端口为5057 6. 新增多平台测试项目与CI脚本优化 7. 完善项目文档与代码注释规范 移除了旧版迁移文件与冗余代理配置,调整项目结构适配跨平台部署需求。
This commit is contained in:
@@ -11,11 +11,17 @@
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Serilog.Extensions.Hosting" Version="10.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.7" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Hua.Todo.Application\Hua.Todo.Application.csproj" />
|
||||
<ProjectReference Include="..\Hua.Todo.Application\Hua.Todo.Application.csproj">
|
||||
<Properties>TargetFramework=net10.0</Properties>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Hua.Todo.HttpApi.AspNetCore\Hua.Todo.HttpApi.AspNetCore.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,21 +1,41 @@
|
||||
using System.Text.Json;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hua.Todo.Application;
|
||||
using Hua.Todo.Application.DynamicApi;
|
||||
using Hua.Todo.Application.Interfaces;
|
||||
using Hua.Todo.Application.Mcp;
|
||||
using Serilog;
|
||||
using Hua.Todo.Application.Common;
|
||||
using Hua.Todo.Application.Models;
|
||||
using Hua.Todo.Application.Repositories;
|
||||
using Hua.Todo.HttpApi;
|
||||
using Hua.Todo.HttpApi.AspNetCore.CloudSync.Services;
|
||||
using Hua.Todo.HttpApi.AspNetCore.DynamicApi;
|
||||
using Hua.Todo.HttpApi.AspNetCore.DynamicApi.Swagger;
|
||||
using Hua.Todo.HttpApi.AspNetCore.Mcp;
|
||||
|
||||
// 配置 Serilog 文件日志(开发环境统一到项目根目录 logs/)
|
||||
Log.Logger = LoggingConfiguration.Create(
|
||||
Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), "..", "..", "logs"))).CreateLogger();
|
||||
Log.Information("[Startup] Serilog 初始化完成");
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
builder.Host.UseSerilog();
|
||||
Log.Information("[Startup] WebApplication.CreateBuilder 完成");
|
||||
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen();
|
||||
builder.Services.AddAuthorization();
|
||||
builder.Services.AddSwaggerGen(options =>
|
||||
{
|
||||
options.DocumentFilter<DynamicApiSwaggerDocumentFilter>();
|
||||
});
|
||||
Log.Information("[Startup] Swagger 注册完成");
|
||||
|
||||
builder.Services.AddApplicationServices("Data Source=Hua.Todo.db");
|
||||
Log.Information("[Startup] AddApplicationServices 完成");
|
||||
|
||||
// 注册云同步服务端能力(认证 / RBAC / 二次认证 / 任务同步 / 安全策略)
|
||||
builder.Services.AddCloudSyncServer();
|
||||
Log.Information("[Startup] AddCloudSyncServer 完成");
|
||||
|
||||
// 注册 MCP Server(依赖 ITaskService,须在 AddApplicationServices 之后调用)
|
||||
builder.Services.AddMcpServerServices();
|
||||
Log.Information("[Startup] AddMcpServerServices 完成");
|
||||
|
||||
builder.Services.AddCors(options =>
|
||||
{
|
||||
@@ -26,14 +46,18 @@ builder.Services.AddCors(options =>
|
||||
.AllowAnyHeader();
|
||||
});
|
||||
});
|
||||
Log.Information("[Startup] DI 注册全部完成");
|
||||
|
||||
var app = builder.Build();
|
||||
Log.Information("[Startup] builder.Build() 完成");
|
||||
|
||||
// Apply database migrations
|
||||
using (var scope = app.Services.CreateScope())
|
||||
{
|
||||
var dbContext = scope.ServiceProvider.GetRequiredService<Hua.Todo.Application.Data.TodoDbContext>();
|
||||
Log.Information("[Startup] 开始 EF Core Migrate...");
|
||||
var dbContext = scope.ServiceProvider.GetRequiredService<TodoDbContext>();
|
||||
dbContext.Database.Migrate();
|
||||
Log.Information("[Startup] EF Core Migrate 完成");
|
||||
}
|
||||
|
||||
if (app.Environment.IsDevelopment())
|
||||
@@ -44,6 +68,7 @@ if (app.Environment.IsDevelopment())
|
||||
|
||||
app.UseHttpsRedirection();
|
||||
app.UseCors("AllowAll");
|
||||
app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
app.UseDynamicApi();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user