Directus:为受支持 SQL 数据库生成 REST 与 GraphQL API

Directus 连接受支持的 SQL 数据库(PostgreSQL/MySQL/Oracle/MSSQL),按权限提供 REST/GraphQL API、免代码管理后台、字段级 RBAC 与 Flows 自动化。数据库优先,需管理系统表、权限与许可边界。本文讲清架构与取舍。

最佳实践
数据整理与查询插画

直接回答:Directus 是源码可见、按所用版本许可证授权的数据库优先平台——内省你现有的 SQL schema(需兼容其字段、关系与主键要求),为兼容的数据集合按已配置权限提供 REST/GraphQL API(带过滤、排序、分页),附送 Data Studio 免代码管理后台、字段级 RBAC 权限与 Flows 自动化引擎。业务数据保留在 SQL 数据库中;直接访问仍需数据库权限,且会绕过 Directus 的权限、事件与审计机制。

数据库优先:反向的架构

多数 headless CMS/BaaS 强加自己的数据模型——迁移、锁定、专有格式。Directus 反过来:指向一个已有数据的库就能开工。会建立 directus_* 系统表;从管理端编辑数据模型也可更改业务 schema,升级涉及数据库迁移,仍有扩展、权限与 Flows 迁移成本。支持 PostgreSQL、MySQL、Oracle、MS-SQL 等。

自动获得的四件套

  1. REST + GraphQL API:为兼容的数据集合提供按权限授权的 CRUD、过滤、排序、分页和字段选择
  2. Data Studio:免代码管理面板,运营直接上手
  3. RBAC:角色权限细到单字段("客服能看手机号,实习生不能")
  4. Flows:事件触发的自动化(新订单→通知→Webhook)

安装边界

docker run -d -p 127.0.0.1:8055:8055 \
  -e DB_CLIENT=pg -e DB_HOST=... -e DB_DATABASE=... \
  directus/directus

上面是参数结构片段,不是可运行命令。还需实际数据库地址、用户/密码、实例 SECRET、初始管理员与持久化配置;从当前官方 Compose 示例起步并固定版本。先在备份副本验证,设置最小权限和 TLS,不把现有生产数据库默认公开。

创建 API 后,使用未登录请求检查公共角色权限,确认只暴露预期集合和字段。

自托管不等于任何规模商业用途免费;按所用版本许可证和组织资格确认商业许可要求。

限制与取舍

复杂业务逻辑不靠它(自定义扩展走 Hooks/Endpoints 开发);深度定制 UI 不如自研;多表复杂事务要自己设计。定位:数据管理层与交付层的加速器,不是业务逻辑的替代品。

常见问题(FAQ)

Q:Directus 会改我的数据库结构吗?
A:它会增加系统表;使用 schema 管理功能可修改业务表,升级也可能迁移系统表。上线前审查数据库权限并验证备份恢复。

Q:性能扛得住生产流量吗?
A:API 层是无状态 Node 服务,可水平扩展;瓶颈通常在数据库本身——索引与查询优化照常做。

Q:和 Appsmith 怎么分工?
A:Directus 是"数据库→API+后台"(数据层),Appsmith 是"API→定制界面"(表现层)。两者可串联:Directus 出 API,Appsmith 拼特定操作界面。

官方参考

本文依据官方文档整理,示例未在本文中进行运行验证。生产部署需按所用版本、权限和实际负载验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台