anime-history-and-evolution
巨人的起源:发现攻击巨人的生物背后的洛尔
Table of Contents
理解直接
Directus是一个开源的无头CMS和数据平台,它坐落在任何SQL数据库之上,立即提供灵活的API层和直观的adminapp. 不同于传统的CMS来决定您的数据结构,Directus内观您现有的数据库计划并生成动态的,完全自定义的界面. 这种方法允许开发者和内容团队按照自己的条件处理数据,而无需锁定在僵硬的内容模型中. 它与Node.js和Vue.js一起构建,使其既轻巧又非常可扩展,适合从简单的博客到复杂的企业车队管理系统等项目.
其核心是Directus,它包含了“无数据”的概念。 它不执行默认的系统、迁移系统或专有文件存储。而是尊重您数据库的现状,无论是从空白系统还是现有的生产数据库开始。这个理念使其成为逐渐采用的理想伴生工具,允许团队在不进行破坏性修改的情况下将现代CMS整合到遗留系统中。
使Directus站出来的关键特性
Directus 包装了一套丰富的能力,旨在精简内容管理并加速应用程序开发,其功能集是故意模块化的,使团队有使用它们需要的仅能自由使用.
- Database-First 方法: Directus不拥有您的数据,它连接到您现有的SQL数据库(MySQL,PostgreSQL,SQLite等),并自动生成相应的API和管理员面板。这意味着您保留对您数据的全部控制,可以使用自己的迁移工具,并且可以直接查询数据库而不突破CMS.
- Dynamic REST和GraphQL APIs: 一旦一个数据库表被确定,Directus立即创建了 REST 和 GraphQL 的终点。这些APIs支持精细的授權,过滤,排序,调图,以及深层关系获取。GraphQL API对需要精确数据查询的前端应用程序特别强大。
- 高度定制的App:[ 管理面板用Vue.js构建,完全可以白贴标签. 您可以自定义品牌,修改页面布局,创建自定义视图,并添加外置的语句 内置页 。 基于角色的访问控制(RBAC) 允许您定义每个用户角色所能看到和做的事情, 下到外地级别 。
- 认证与安全:Directus支持一系列认证提供者,包括本地的电子邮件/密码,Google,Facebook,Twitter,GitHub,和SSO通过OpenID Connect. 它还提供两个要素认证,IP白名单,以及一个与您用户定义的角色相连的综合权限系统.
- 纤维和媒体管理: 多功能数字资产管理器允许您上传、裁剪和组织文件。它包括飞行时图像转换,并可在本地磁盘、S3或其他云存储适配器上存储资产。这对于车队平台至关重要,您可以管理数千张车辆检查照片或驾驶文件。
- 通过扩展扩展扩展: 平台支持自定义接口、显示、布局、面板、钩子和终点。开发者可以以npm包的形式发布扩展,也可以保持项目特定。这种生态系统允许您将Directus的经验精确地调整到您的领域,无论是物流、医疗保健还是电子商务。
建筑深潜:Directus如何工作
在引擎盖下,Directus由API服务器("核心")和一个脱钩的客户端管理应用程序组成。两者都是BSL和GPL许可下的开源,有商业支持的版本。当你在数据库中指向Directus时,它会分析表格和列,检测数据类型、关系和约束,然后建立元数据层,描述每个收藏和字段。这个元数据存储在同一数据库中的一组专用表格中,确保不存在你无法控制的专有黑盒存储。
抽象图层
一旦数据库被内测, Directus 创建了您数据的虚拟表达方式。 您可以将表格重新命名为“ 收集 ” , 隐藏敏感栏目, 并调整字段标签和描述, 而不修改基本的 SQL 方案。 这种抽象化在 CMS 中纯粹是化妆品, 功能性, 数据库没有受到任何客户端或 SQL 工具的干扰, 也没有完全运行。 对于机队应用, 这意味着您的远程数据库可以继续摄取实时数据, 而内容小组则使用 Directus 来管理静止的车辆配置和驱动文件, 并且都是和谐的 。
API 生成和缓存
Directus 自动从元数据中构建 OpenAPI 和 GraphQL 计划。每个集合都获得自己的 REST 端点( GET, POST, PATCH, DELETE) , 并带有绘图到 SQL 操作基础的查询参数, 包括聚合函数, 关系结合, 以及计算字段。 平台包括内置缓存层和支持 Redis 保持 API 响应的速度, 即使负载过重, 这是查询数千个记录的车队仪表板的基本功能 。
通过 WebSockets 实时更新
对于需要实时数据更新的应用程序,Directus提供了WebSocket接口。订阅可以按收集方式设定,允许前端客户在数据变化时收到即时通知。这对于车队跟踪系统来说是十分宝贵的,因为车辆的位置或状态需要实时推到仪表板上。
Directus 与其他 CMS 平台的比较
也帮助将Directus在生态系统中的地位与常见的替代品作对比。
直接对斯特拉皮
两者都是建立在Node.js上的无头CMS,但根本区别在于数据库哲学。 Strapi拥有数据库结构,处理迁移和计划定义本身。另一方面,Directus 照搬了现有的数据库。如果你已经拥有一个包含数百个表格的复杂的车队管理数据库,并且你想在不改变这一模式的情况下添加一个CMS层,Directus 则是一个明确的选择。 Strapi的方法从零开始适合项目,因为你很高兴让CMS定义数据模型。
直接对哈苏拉
Hasura是一个 GraphQL 引擎,它也内置数据库并曝光一个 GraphQL API。 然而, Hasura 不是一个 CMS ; 它缺乏一个内容编辑器专用的管理员面板。 Directus 既提供了API , 也提供了完整的管理员界面, 与 RBAC 、 媒体管理, 也提供了灵活的用户体验。 对于日常操作需要非开发用户界面的应用程序, 类似于机队管理器更新驱动记录, Directus 更为实用 。
Directus vs. WordPress (作为无头CMS) 互联网档案馆的存檔,存档日期2013-03-02.
WordPress可以通过它的REST API无头使用,但它仍然与自己的数据计划和“后”概念相联。 Directus没有强制实施这样的概念,使其更适应非内容网站。 如果你的项目需要管理库存、传感器数据或任何自定义实体,Directus提供了一种更自然的适应性,而无需WordPress的见解结构。
真实世界舰队管理使用案例
一篇“Fleet Directus”的文章往往集中在内容管理和操作数据的交叉点上。 船队生成大量信息 — — 车辆遥测、维护记录、驾驶员文件、保险记录、路线分配和合规报告。 Directus可以作为管理所有这一切的统一数据平台。
- 司机和车辆简介:[ 使用Directus来模拟车辆细节,驾驶证,执照到期,以及指定的单位. 管理员面板允许调度员更新状态,上传检查照片,并通过钩子触发警报.
- 事件报告:事件自定义集可以捕捉时间戳,GPS坐标,损坏描述,以及辅助图像. 借助API,移动应用程序可以直接提交报告,管理员应用程序可以作为合规官员的审查界面.
- 维护排程 创建与车辆相连的维护集合. 设置 cron 任务或外部触发器,查询Directus API,以识别需要服务的车辆,并自动向责任团队发送电子邮件提醒.
- 数字文档存储库:[ 媒体经理组织合同、保险单和合规表。 Directus的许可确保了司机只能访问自己的文件,而审计师则可以更宽的阅读。
- Real-Time Dashboard Integration: 通过将GraphQL API与Nuxt.js或Next.js等前端库合并,可以构建实时机队仪表板,在地图上显示车辆位置,最近的警报,以及关键性能指标. Directus的WebSocket支持保持数据新鲜而无需重新装入.
因为Directus直接位于您的操作数据库中,所以这些使用案例不需要将数据复制或同步到单独的CMS存储器中。 这降低了复杂性和耐久性,这是对时间敏感的机队操作的巨大优势。
开始: 设置直线项目
安装 Directus 可以在几分钟内完成。 推荐的方法是使用官方的 CLI 或 Docker 图像。 对于一个寻找原型的车队公司来说, Docker 编译器设置与 Directus 和一个 PostgreSQL 容器是最快的路径 。
- 将多克图像:[]运行以获得最新的稳定版本.
- 创建一个编译文件: 定义 Directus 和您所喜欢的数据库的服务. ADMIN EMAIL, ADMIN PASWORD, SECRET, 和数据库证书等地图环境变量.
- 关闭堆栈: 启动两个容器。Directus在第一次运行时自动初始化,在数据库中创建必要的系统表格。
- 访问管理程序 App:[ 导航到 并登录管理程序。您会看到一张空白的画布,准备取数据。
- 连接一个现有数据库: 如果您已经拥有一个车队数据库,请通过更新 DBQQ环境变量来指向DBX环境变量。重启后,管理员面板将显示您所有的表格作为收藏。然后您可以配置字段标签、关系和权限。
扩展直导以适应您的操作
Directus的真正力量在于它的延伸性。 自定义扩展让您将平台建模为您的特定业务逻辑而无需伪造核心。这在车队管理中至关重要,因为工作流程往往涉及天气API、政府车辆注册或VIN解码器等外部服务。
构建自定义接口和显示
界面定义字段的编辑方式(例如,一个日期拾取器,一个GPS坐标的地图选择器)。显示只读视图中如何显示字段。您可以创建自定义的“车辆状态”接口,显示一个彩色编码徽章,或者“旋转优化器”显示器,它调用外部API来可视化一个路由。这些是用Vue.js构建的,并通过扩展文件夹注册的。
创建 Webhooks 和事件钩
Directus 提供了一个钩子系统,它触发了项目创建,更新,或删除等事件的逻辑. 例如,当创建新的维护记录时,钩子可以自动向指定给该车的机械师发送通知. Webhooks可以在全球配置,也可以从管理员面板上每个集合配置,可以与Zapier,Slack进行集成,或者不写服务器代码的自定义中件服务.
自定义 API 终点
如果动态 REST 或 GraphQL API 无法满足特定需要, 您可以在 Directus 服务器中添加自定义的端点。 这些端点可以完全访问数据库、 认证上下文和核心服务。 机队应用程序可能会暴露一个端点, 将燃料消耗总量汇总到一个日期范围内, 执行复杂的 SQL 加入, 而后者在通用 API 查询中并不容易表达出来。 通过添加它作为扩展, 端点成为官方 API 的一部分, 并受益于相同的认证和限速机制。
敏感舰队数据Directus安全模型
车队管理涉及敏感的个人数据(司机执照、电话号码、地点)和机密商业信息(合同、路线)。Directus的颗粒式许可系统确保只有授权用户才能获得正确的数据。您定义了角色——比如“司机”、“司机”、“经理”和“审计员 ” —然后为每个收集和个人领域指定许可。许可可以基于任意的商业规则,使用过滤表达方式。例如,司机只能看到`指定'司机的字段与其用户身份相符的车辆记录。API标志、IP白名单和MFA提供了适合合规要求的更多安全层次。
高卷数据性能优化
如果您的机队数据库有数百万个遥测记录, 性能就会变得至高无上。 Directus 允许您直接添加数据库索引( 因为它不拥有该图谱) , API 也会使用这些索引来加快查询。 平台还支持限制速率、 资产CDN 和Node.js 服务器水平缩放。 对于报告重度使用的案例, 您可以在数据库中创建可读化视图, 并将其注册为 Directus 中只读化的集合, 提供快速访问预汇总数据的机会, 而无需对主表格进行课税 。
Directus社区和生态系统
Directus 受益于一个主动的开源社区,它能贡献扩展、主题和蓝图。 GitHub 讨论[ 板和 Directus Discord 服务器[ 是获得帮助或分享你车队执行故事的极佳场所。核心团队维护从安装到自定义扩展开发的全方位文件[ 。对于企业来说, Directus Cloud[ Directus Cloud[ 提供了管理下的托管选项,可以处理规模、备份和更新,使你的团队摆脱基础设施的担忧。
未来校验您的舰队数据堆栈
选择Directus 意味着您不会将您的关键机队操作锁定在一个专有的生态系统中。 由于您的数据存放在标准SQL数据库中,您保留了SQL的全部报告、ETL进程和与Metabase或Power BI等BI工具的整合能力。 如果您决定从Directus 迁移出去,您的数据模型及其完整性仍然完好无损,而且供应商的锁定是零。这个数据库第一战略与车队资产管理中需要的长期思维完全一致,因为车辆的生命周期和监管记录长达几十年。您将Directus 视为轻量、强的数据前端而不是单一的数据系统,从而为您的机队业务构建了具有弹性和适应性的技术基础。