关键要点
此模板为您提供一个具有用户、功能和切换的功能标志后端,使您的团队可以专注于分阶段推出和远程配置。
- 以功能为中心的架构设计 — 通过清晰、可查询的结构使用切换和用户特定配置建模功能。
- 实时配置更新 — 利用Back4app的实时功能进行即时功能切换更新。
- 用户特定的功能管理 — 通过用户特定的切换和配置管理功能推出。
- 远程配置功能 — 启用功能的远程配置以实现无缝更新和测试。
- 跨平台功能管理 — 通过单一的REST和GraphQL API为用户、功能和开关提供移动和网络客户端服务。
什么是功能标志应用后端模板?
Back4app是一个后端即服务(BaaS),用于快速产品交付。功能标志应用后端模板是一个预构建的架构,包括用户、功能和开关。连接您喜欢的前端(React、Flutter、Next.js等)并更快交付。
最佳适用:
概览
一个功能管理产品需要用户配置文件、功能和开关。
此模板定义了用户、功能和开关,具有实时功能和所有权规则,因此团队可以快速实施功能管理。
核心功能标志功能
此中心的每个技术卡片都使用相同的功能标志后端架构,包括用户、功能和切换。
用户资料和配置
用户类存储用户名、电子邮件、密码和配置。
功能创建和管理
功能类链接名称、描述和状态。
切换管理
切换类存储功能参考、用户和状态。
为什么使用Back4app构建您的功能标志后端?
Back4app为您提供用户、功能和切换原语,因此您的团队可以专注于功能推出和配置,而不是基础设施。
- •用户和功能管理: 具有配置管理支持的用户类和功能类支持功能切换。
- •切换和配置功能: 通过用户特定的配置管理功能切换,并允许无缝更新。
- •实时 + API 灵活性: 使用Live Queries进行切换更新,同时保持REST和GraphQL可用于每个客户端。
通过在所有平台上使用一个后端合同快速构建和迭代功能管理。
核心优势
一个功能管理后端,帮助您快速迭代而不牺牲结构。
快速功能启动
从完整的用户、功能和切换架构开始,而不是从零设计后端。
实时配置支持
利用实时切换更新以增强功能管理。
清除配置流程
使用用户特定的切换和状态管理功能配置。
可扩展的权限模型
使用ACL/CLP,以便只有用户可以编辑他们的配置和管理功能切换。
切换和功能数据
存储和汇总切换数据以便显示和交互,无需重置模式。
AI引导工作流程
通过一个结构化提示快速生成后端脚手架和集成指导。
技术栈
此功能标志后端模板中包含的一切。
ER 图
功能标志后端架构的实体关系模型。
涵盖用户、功能和切换的架构。
查看图表来源
erDiagram
User ||--o{ Toggle : "user"
FeatureFlag ||--o{ Toggle : "featureFlag"
User ||--o{ AuditLog : "user"
FeatureFlag ||--o{ AuditLog : "featureFlag"
User {
String objectId PK
String username
String email
String password
Date createdAt
Date updatedAt
}
FeatureFlag {
String objectId PK
String name
String description
Boolean enabled
Date createdAt
Date updatedAt
}
Toggle {
String objectId PK
Pointer featureFlag FK
Pointer user FK
Boolean enabled
Date createdAt
Date updatedAt
}
AuditLog {
String objectId PK
String action
Pointer user FK
Pointer featureFlag FK
Date timestamp
}
集成流程
身份验证、用户配置文件、功能和切换的典型运行时流程。
查看图源
sequenceDiagram
participant User
participant App as Feature Flag App
participant Back4app as Back4app Cloud
User->>App: Login
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: List feature flags
App->>Back4app: GET /classes/FeatureFlag
Back4app-->>App: Feature flags
User->>App: Toggle feature flag
App->>Back4app: POST /classes/Toggle
Back4app-->>App: Toggle objectId
App->>Back4app: Log action
Back4app-->>App: Audit log entry数据字典
功能标志模式中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必需 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
6 字段在 User
安全和权限
ACL和CLP策略如何保护用户、功能和切换。
用户拥有的配置控制
只有用户可以更新或删除他们的配置;其他人不能修改用户内容。
功能和切换的完整性
只有创建者可以创建或删除他们的功能和切换。使用云代码进行验证。
范围读取访问
将功能和切换读取限制为相关方(例如,用户查看自己的配置和公共功能)。
模式(JSON)
原始JSON模式定义,准备复制到Back4app或用作实现参考。
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "FeatureFlag",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"description": {
"type": "String",
"required": false
},
"enabled": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Toggle",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"featureFlag": {
"type": "Pointer",
"required": true,
"targetClass": "FeatureFlag"
},
"user": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"enabled": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AuditLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"action": {
"type": "String",
"required": true
},
"user": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"featureFlag": {
"type": "Pointer",
"required": true,
"targetClass": "FeatureFlag"
},
"timestamp": {
"type": "Date",
"required": false
}
}
}
]
}使用 AI 代理构建
使用 Back4app AI 代理从此模板生成一个真实的功能标志应用,包括前端、后端、认证,以及用户、功能和切换流程。
在 Back4app 上使用此精确的模式和行为创建一个功能标志应用后端。 模式: 1. 用户(使用 Back4app 内置):用户名、电子邮件、密码;objectId、createdAt、updatedAt(系统)。 2. 功能:名称(字符串,必填),描述(字符串);objectId、createdAt、updatedAt(系统)。 3. 切换:功能(指向功能的指针,必填),用户(指向用户的指针,必填),状态(字符串:激活,未激活,必填);objectId、createdAt、updatedAt(系统)。 安全性: - 只有用户可以更新/删除他们的配置。只有创建者可以创建/删除他们的功能和切换。使用云代码进行验证。 认证: - 注册、登录、注销。 行为: - 列出用户,创建功能,切换功能,管理配置。 交付: - Back4app 应用,包含模式、ACLs、CLPs;用户资料、功能和切换的前端。
按下面的按钮打开代理,预填此模板提示。
这是没有技术后缀的基本提示。您可以在之后调整生成的前端栈。
API 操作台
在功能标志架构中尝试 REST 和 GraphQL 端点。响应使用模拟数据,不需要 Back4app 账户。
使用与此模板相同的架构。
选择您的技术
展开每张卡片以查看集成步骤、状态模式、数据模型示例和离线说明。
Flutter 功能标志后端
React 功能标志后端
React 原生 功能标志后端
Next.js 功能标志后端
JavaScript 功能标志后端
Android 功能标志后端
iOS 功能标志后端
Vue 功能标志后端
Angular 功能标志后端
GraphQL 功能标志后端
REST API 功能标志后端
PHP 功能标志后端
.NET 功能标志后端
每种技术都能获得的内容
每个堆栈使用相同的功能标志后端架构和API合同。
功能标志 的统一功能管理
轻松在一个集中系统中管理所有功能和切换。
功能标志 的细粒度访问控制
根据角色定义谁可以访问特定功能。
REST/GraphQL API 的 功能标志
灵活的 API 以无缝集成和控制功能。
功能标志 的实时功能切换更新
即时更新功能标志而无需重新部署您的应用。
功能标志 的 A/B 测试支持
进行实验以优化功能性能和用户体验。
功能标志 的综合分析
跟踪功能使用和性能指标以作出决策。
功能标志框架比较
比较所有支持的技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 功能标志的好处 | SDK类型 | AI支持 |
|---|---|---|---|---|
| ~3–7分钟 | 移动和网页上功能标志的单一代码库。 | Typed SDK | 完整 | |
| 快速 (5分钟) 设置 | 功能标志的快速网页仪表盘。 | Typed SDK | 完整 | |
| ~5分钟 | 功能标志的跨平台移动应用。 | Typed SDK | 完整 | |
| 大约 5分钟 | 功能标志的服务器渲染网页应用。 | Typed SDK | 完整 | |
| 不到 5分钟 | 功能标志的轻量级网页集成。 | Typed SDK | 完整 | |
| ~3–7分钟 | Android 原生应用的功能标志。 | Typed SDK | 完整 | |
| 快速 (5分钟) 设置 | iOS 原生应用的功能标志。 | Typed SDK | 完整 | |
| ~5分钟 | React 的网页 UI 功能标志。 | Typed SDK | 完整 | |
| 大约 5分钟 | 企业网页应用的功能标志。 | Typed SDK | 完整 | |
| ~2分钟 | 灵活的 GraphQL API 功能标志。 | GraphQL API | 完整 | |
| 不到 2分钟 | REST API 集成功能标志。 | REST API | 完整 | |
| ~3–5分钟 | 服务器端 PHP 后端功能标志。 | REST API | 完整 | |
| ~5分钟 | .NET 后端功能标志。 | Typed SDK | 完整 |
设置时间反映了从项目启动到使用此模板架构进行第一次功能切换的预期持续时间。
常见问题
关于使用此模板构建功能标志后端的常见问题。