Skip to content

产品优势

减少后端 API 开发

在传统后端开发中,为数据库表编写 CRUD 接口是一项重复但必须的工作。每张表通常需要路由定义、控制器、服务层、数据访问层、参数校验、错误处理和权限判断——这些代码结构高度相似,却要反复编写。数据墙DBW 的设计目标就是把这类标准化工作从手写代码中解放出来。

传统方式 vs 配置驱动

对比维度传统后端开发数据墙DBW
新增一张表的 API编写路由、控制器、Service、DAO、DTO在配置文件中加一个实体块
增删改查 + 分页筛选每个操作都要实现引擎自动生成
接口文档手动维护或注解生成自动生成 OpenAPI 与 Swagger
身份认证与权限在每个接口中分散判断配置中声明角色与操作映射
字段控制手写 DTO 或序列化配置权限配置中声明 include/exclude

具体减少了什么

一个典型的数据 API 项目,接入数据墙DBW 后以下内容不再需要手写:

  • 路由注册:实体名称即为 REST 路径,不需要 app.MapGet("/api/books") 这类代码。
  • 查询构造:筛选、排序、分页、字段选择由引擎根据请求参数自动生成 SQL。
  • CRUD 实现:GET/POST/PUT/PATCH/DELETE 五类标准 HTTP 操作统一由运行时处理。
  • 数据格式转换:数据库字段到 API 字段的映射、别名统一在实体配置中声明。
  • 接口文档:OpenAPI 规范随配置自动生成,不需要手写注解。
  • 分页逻辑:游标分页、nextLink 生成、$first/$after 参数解析全部内置。

数据墙DBW 可以基于同一份实体配置同时生成 REST API 和 GraphQL API,启用 MCP 后还会把数据库能力以工具形式暴露给 AI 代理。配置一次,三种访问方式同时可用。

它的定位不是替代所有后端代码,而是把标准化的数据访问管道交给配置驱动引擎,让开发团队把精力集中在复杂业务流程、领域模型、异步任务和第三方集成上。

统一数据库访问入口

很多系统中,数据库被多种消费者访问:前端应用、后端服务、数据分析工具、内部管理系统、AI 代理。如果每种消费者都用自己的方式连接数据库,很快就会产生访问路径碎片化、权限分散、接口不一致等问题。

数据墙DBW 提供了一个统一的数据库访问网关,所有消费者通过同一入口、同一套权限模型访问数据:

text
前端应用 ──→ REST API ──┐
后端服务 ──→ REST API ──┤
低代码平台 → REST API ──┤
移动端 ────→ REST API ──┼──→ 数据墙DBW ──→ 数据库
第三方系统 → REST API ──┤
分析工具 ──→ GraphQL ───┤
AI 代理 ───→ MCP ───────┘

多协议,一套配置

不同消费者有不同偏好。前端和移动端习惯 REST,数据分析和灵活查询场景适合 GraphQL,AI 应用需要 MCP 协议。数据墙DBW 在同一份配置上同时驱动三种协议。三种协议共享同一套实体定义、权限规则、字段控制和缓存策略,不会出现 REST、GraphQL、MCP 权限不一致的问题。

多数据源统一暴露

数据墙DBW 可以同时连接多个数据库,通过 data-source-files 将它们统一暴露在同一个 API 入口下。消费者只需记住一个 API 地址,不需要知道背后有多少个数据库、它们是什么类型、分布在哪些服务器上。

统一权限与可观测性

所有数据访问经过同一个网关,权限规则在一处集中定义和执行。同时,所有访问都有统一的日志、追踪和监控,为安全审计、性能分析和数据治理提供了全景视图。

降低接口维护成本

接口开发完成后,真正的成本在长期维护。数据库结构变化、字段增删、权限调整、新增业务表——每次变更都可能需要改代码、测试、部署。数据墙DBW 的配置驱动模式在维护阶段的价值尤为突出。

数据库变更,改配置即可

变更场景传统做法数据墙DBW 做法
加一张表编写完整 CRUD 代码,部署上线entities 中加一个实体块,重启生效
加字段改 Model、改 DTO、改接口字段自动出现在 API 响应中
列名重命名改代码 + 通知所有消费者加一个字段别名,API 外部名称不变
新增角色权限在每个接口中改代码permissions 中加一行
调整分页大小改代码、测试、部署runtime.pagination

字段别名:保持 API 接口稳定

数据库列名有时会因为内部规范调整而改变,但外部 API 消费者不应该受此影响。fields.alias 机制让 API 字段名独立于数据库列名:

json
{
  "fields": [
    { "name": "sku_product_title", "alias": "title" },
    { "name": "sku_internal_code",   "alias": "code" }
  ]
}

对外 API 一直返回 titlecode,消费者代码无需修改,内部列名调整不会影响任何 API 消费者。

自动实体发现

当业务频繁新增数据库表时,autoentities 允许你按模式匹配自动公开新表。符合命名规则的表会在服务重启后自动成为 API,不需要任何手动配置。

CI/CD 友好

配置文件是纯 JSON 文本,天然适合版本控制和 CI/CD 流程。你可以用 Git 追踪变更历史、为不同环境维护不同分支、通过流水线自动校验配置格式(dab validate)、把配置变更纳入 Code Review 流程。

适合容器化部署

数据墙DBW 以容器镜像形式发布,启动后可直接访问。服务不依赖本地文件系统持久化,所有配置通过 JSON 文件或环境变量注入,这些特性让它天然适合容器化部署和云原生环境。

无状态架构

数据访问请求由引擎直接转发至数据库,服务实例之间无需状态同步。多个实例可以横向扩展、互为副本,任何一个实例重启或替换都不影响其他实例。如需跨实例共享缓存,可接入 Redis 作为二级缓存(L2 Cache)。

三种运行形态

运行方式命令适用场景
本地进程dab start开发调试、本地测试
容器运行docker run测试环境、生产部署
源码构建dotnet run定制开发、源码审查

三种方式共享同一份配置文件,本地跑通的配置可以直接用于容器环境。

配置外部化与健康检查

容器化部署的核心需求是配置外部化。数据墙DBW 支持 @env('SQL_CONNECTION_STRING') 语法引用环境变量,配合 Docker 或 Kubernetes 的变量注入机制,同一份配置文件可适配不同环境。敏感信息(如连接字符串)无需写入配置文件,通过环境变量传入即可。

服务内置健康检查端点 GET /health,容器编排平台可直接用它做存活探测和就绪探测。服务启动迅速、资源占用较低,在资源受限环境和大型集群场景中都能良好运转。

数据墙DBW 产品文档与开发指南。