Daptin
无头 CMS 服务器
- 数据的版本控制
- 身份验证和授权
- JSON API 端点
- GraphQL 端点
- 与外部服务的操作和集成
入门
特性
- 声明性数据建模系统
- 唯一/主键
- 单/多关系
- 规范化和构象(Normalizations and conformations)
- 使用 JS 编写脚本
- 适用于所有表的 CRUD JSON API
- 创建,读取,更新,删除
- 排序,过滤,搜索,按单列/多列分组
- 身份验证和基于组的授权
- 可插入的中间件,构造和规范化
- 触发操作/管道
- GraphQL API
- 所有表的读取和变异 API(Mutations API)
- 一级关系提取
- 适用于所有平台的客户端 SDK 库
- 丰富的数据类型
- 列类型从数字到 json 到文件/图像资产
- 子站点托管
- 从单个实例中公开多个网站
- 连接多个域/子域
- 可插入的社交身份验证,基本身份验证或用户名/密码身份验证
- 云存储
- 无缝连接到外部云存储服务
- 拉数据/推送数据
- 操作 API
- 定义工作流程
- 为其他服务公开自定义端点
- 准备使用 Web 仪表板
- 响应式桌面、移动和桌面
- 跨平台
- Windows、Mac、Linux 等
APIs
- CRUD APIs
- Action APIs
- User APIs
- State tracking APIs
Users
Asset and file storage
Sub-sites
Client library
Ruby | Python | Javascript |
Typescript | PHP | Dart |
.NET | Java | iOS |
Elixir | R | Perl |
API spec RAML
OpenAPI V3 规范为每个公开的端点自动生成。这可以用来生成进一步的文档和客户机。
curl http://localhost/apispec.yaml
<code>{ "data": [ { "type": "tableName", "attributes": { "col1": "", "col2": "", }, "id": "", } ], "included": [ { "type": "tableName", "attributes": {}, "id": "", }, . . ], "links": { "current_page": 1, "from": 0, "last_page": 100, "per_page": 50, "to": 50, "total": 5000 } } </code>
Web Dashboard
为什么选择 Daptin?
Daptin 是为了帮助在数据上构建更快、更强大的 API,这些 API 可以跨所有类型的前端工作。
虽然 Daptin 主要针对 Web 应用,但 Android 和 iOS 应用作为开发人员快速增长的目标的出现,需要一种不同的方法来构建后端。随着开发人员对传统框架和捆绑技术的经典使用,我们很难在业务和前端需求上投入足够的时间,从而满足各种应用程序的前端需求。这些应用程序提供一致且可预测的 API,在不同的平台和设备上,这些 API 在快负载和慢负载上的性能都一样好。
此外,框架碎片化还造成了 API 开发互操作性的噩梦,为一个目的构建的后端需要大量样板文件,并以一致的方式与系统的其他部分集成。
围绕 JSON API 的组件系统为这两个问题提供了解决方案,允许将更多时间投入到前端和业务构建中,并针对所有前端都可以使用基于标准的 JSON/实体模型。
然而,仅使用 JSON API 进行数据操作是不够的。构建应用程序需要大量的自定义操作、工作流、数据完整性、事件订阅以及与外部服务的集成,这些服务以前都被锁定在传统 web 框架中。构建 Daptin 的目的是将这些特性从传统框架中提取出来,并以自动化的方式将它们带到快速出现的 JSON API 标准中。
入门
- 在服务器上部署 Daptin 实例
- 上传 JSON/YAML/TOML/HCL 文件,该文件描述您的实体(或使用市场开始)
- 或上传 XLS 文件以创建实体和上传数据
- 成为实例的管理员(在此之前它是开放访问的,这就是您能够创建帐户的原因)
技术目标
- 零配置启动(sqlite db 用于无配置安装,建议使用 mysql/postgres)
- 紧密结合的功能集协同工作
- 运行时可完全配置
- 无状态(横向可扩展)
- 利用已知的标准
- 可在所有类型的设备上运行
- 使用 qt 跨平台应用(非常长期的目标。一个响应式网站。)
路线图
- 从 JSON 架构上传规范化 Db 设计
- √ Json Api,带 CRUD 和关系
- √ OAuth 身份验证,内置 jwt 令牌生成器(设置机密本身)
- √ 基于稍加修改的 linux FS 权限模型的授权
- √ 对象和操作链
- √ 使用状态机进行状态跟踪
- √ 数据连接器 -> 传入/传出数据
- √ 插件系统 -> 根据您的需要扩展系统
- √ 对不同数据类型(地理位置/时间/颜色/测量)的原生支持 (geo location/time/colors/measurements)
- √ API 中数据的可配置智能验证
- √ 页面/子网站 -> 为目标受众创建子网站
- √ 定义系统周围的事件
- √ 数据转换/交换/转换
- √ 子网站的实时编辑器 -- grapesjs
- √ 存储用于存储大型文件/子站点的连接器 -- rclone
- √ 允许安装插件扩展的市场
- √ 在线实体设计器
- √ Excel 到实体识别
- √ CSV 到实体标识
文档
- 查看 daptin 文档
(First edition: vz edited at 2019.09.01)