实体设计器
本文将介绍实体设计器。在创建实体文件后,此设计器将打开。 它允许您创建和配置与 EF Core、SQLSugar、Dapper 或其他 ORM 兼容的实体(目前仅支持 EF Core 6/7/8)。
创建实体
可以通过以下两种方式创建实体:
从零开始创建实体
选择菜单 项目 > 新建项,在 添加新项 窗口中选择 实体设计(从零开始)。将会创建一个实体文件,并且打开实体设计器,你可以在实体设计器中从零开始创建一个或多个实体。
从数据库导入实体
选择菜单 项目 > 新建项,在 添加新项 窗口中选择 实体设计(从数据库导入) ,然后选择一个或多个已存在的数据库表,将这些表直接导入为实体。在实体设计器中,你也可以随时从设计视窗的顶部选择 从数据库导入 工具选择数据表导入为实体。具体步骤,请参考 开发教程。
实体设计器由以下组成:组件库、大纲树、设计视窗、实体(表)选项页、数据库选项页。
组件库
在实体设计器的组件库中,提供了基本组件如:空白表、审计表和多租户表,为您提供创建不同类型数据库表的基础模板和功能支持:
- 空白表:空白表是指一个不包含如何预设字段或业务逻辑的表。在实体设计器中,空白表是最基础的数据库实体,用户可以根据实际需求添加字段,设置约束,定义主键等。
- 审计表:审计表用于记录数据的操作历史,包括对数据的创建、更新、删除等操作的审计日志。审计表会自动记录每条记录的变化历史,适用于需要追溯和审计的场景。审计表包含字段如:创建人,创建时间,更新人,更新时间等。这些字段的数据会自动更新和维护,不需要用户处理。
- 多租户表:用于实现多租户架构下的数据隔离。多租户表通常包含一个标识租户的字段(TenantId),确保不同租户的数据不会互相干扰。多租户表的数据会自动更新和维护,不需要用户处理。
大纲树
在实体设计器中,大纲树作为一种结构化视图,帮助用户轻松理解及浏览数据库、表和字段之间的关系,直观管理和导航数据库中的各个元素。它通过层级化的方式呈现数据库、表和字段的结构,使得用户可以快速选择数据库/表或删除表/字段。
大纲树与设计视窗之间实时同步与交互。当用户在大纲树中选择数据库、表或字段时,设计视窗中的焦点及相关配置页面会随之更新。
例如,当用户在大纲树中选中一个表时,设计视窗会同步选中该表的设计界面,并且选中该表的配置页面( 实体(表) 选项卡)。你可以在 实体(表) 选项卡中对表进行修改,例如:添加/删除字段,修改字段的数据类型,设置主键、外键、索引等。详细说明,请参考 实体(表)选项页。
例如,当用户在大纲树中选中根节点时,数据库的配置页面(数据库选项卡)将会被选中。您可以在数据库选项卡中修改数据库名称、类型、连接字符串等。详细说明,请参考 数据库选项页。
设计视窗
在实体设计器中,设计视窗提供了一个直观、交互式的可视化设计界面,帮助用户通过图形化的方式创建、编辑和管理数据库表、字段以及它们之间的关系。设计视窗支持通过鼠标拖拽添加表以及建立表之间的外键关系。
设计视窗顶部的工具条提供以下功能:
- 缩放百分比 -- 用户可以点击按钮选择合适的百分比,或者使用鼠标滚轮来缩小或放大设计视窗的视图。
- 网格 -- 用户可以选择设计视窗中是否显示网格线。
- 小地图 -- 用户可以选择设计视窗的右下角是否显示一个小地图。它展示了整个设计视窗的缩略图,并实时反映视图中的位置,有助于用户快速定位和导航到特定区域。
- 全部展开 -- 用户可以选择一次性展开所有表中的字段,方便用户查看每个表的所有字段。
- 全部折叠 -- 用户可以选择一次性隐藏所有表中的字段,只显示表名。适用于查看表之间的关系时,减少视觉干扰。
- 从数据库导入 -- 用户可以直接从现有的数据库导入表和字段,将数据库实体(如表、字段、主键、外键等)直接导入到设计视窗中。可以避免手动创建每一个表结构,节省时间。具体说明,请参考 开发教程。
- 搜索 -- 用户可以输入表名或关键字来快速定位到目标表。
- 视图模式/列表模式 -- 用户可以选择将设计视窗在图形化视图和列表模式之间切换。
- 快速创建逻辑 -- 用户可以基于设计视窗中已有的数据库表直接创建与之相关的增删改查方法。具体说明,请参考 逻辑设计器。
"实体(表)"选项页
在实体设计器中,实体(表) 选项卡是用户进行设计和管理表/字段的核心区域。它提供了表和字段的基本配置选项,以及其他重要功能如外键管理、索引等。以下是对 实体(表) 选项卡中主要功能和配置的详细描述。
常规
表名:数据库表的名称。
架构:如果使用关系数据库,您还需要指定表架构。 如果此处未指定架构名称,则将使用数据库中的默认架构。
显示名称: 表的显示名称。
列名、数据类型、可空 等:请参考列设计小节。
列设计
每个表包含若干列(也叫字段),每列都有特定的数据类型(如String,Int,Boolean等),您可以为每列设置约束,例如:主键,是否可空,是否为集合等。
您可以点击字段列表底端的 +添加 图标,添加新字段到当前列表,点击字段左边的 编辑 图标可以修改字段的基本配置,或者点击字段右边终端的 拖动排序 图标调整字段次序。
常规
- 列名:列的名称。
- 显示名称:列的显示名称。
- 数据类型: 列的数据类型。 例如,Int32 数据类型将在 C# 代码中定义为 int 类型。支持的数据类型包括:
- 整数类型:Int16、Int32、Int64、UInt16、UInt32、UInt64
- 字符类型:String、Char
- 日期时间类型:DateTime、DateTimeOffset、DateOnly、TimeOnly、TimeSpan
- 浮动类型:Decimal、Single、Double
- 其他:Boolean、Guid、Byte、枚举、模型
- 主键:详见以下小节。
- 可空:当选择 可空 选项时,该列将允许为空值。 对于关键字段如主键或约束字段,通常会设置为不可空,以确保数据的完整性。
- 集合:详见以下小节。
- 长度:指定字符串类型(例如 String 和 Char)列的最大长度。
- 精度:指定数字类型(例如 Double 和 Decimal)列中可以存储的总位数(包括整数位数和小数位数)。
- 小数位数:指定数字类型(例如 Double 和 Decimal)列中小数点后面的位数,即该列在存储浮动小数点数值时允许的小数位数。
- 默认值:指定列的默认值。 在插入新记录时,如果该列没有显式指定值时,将自动使用默认值。 指定默认值有以下三种方式: 1) 手动输入默认值; 2)通过表达式计算默认值; 3)通过 SQL 语句设置默认值。
- 描述: 列的描述。简短说明列的用途或存储的数据类型。
数据规范
- 数据:指定是否为自增列。自增列的值在每次插入数据时会自动递增。某些数据类型(例如 Int、UInt)具有这个选项。
- 起始值:指定自增列从某个起始值开始,并在每次插入新数据时自动增加。
- 增量值:指定自增列的步长,即每次递增的数量。
- 计算列:指定是否为计算列。计算列的值由其他列的值通过表达式或公式自动计算得出。计算列的值根据其他列的值在查询时动态计算生成,也可以持久化存储在数据库中。
- 持久化:指定计算列的值是否被持久化存储在数据库中。如果计算列是持久化的,数据库会存储计算结果,而不是每次查询时都动态计算。
- 表达式:指定定义计算列的值的表达式、公式或函数,例如,可以将两列的和、差、乘积或其他计算逻辑作为计算列的定义。
- 序列:使用序列生成唯一的标识符。点击 添加序列 后将打开 自定义唯一标识 窗口(详见 自定义唯一标识)。某些数据类型(例如 String、Int)具有这个选项。
主键
在 实体(表) 选项卡中 主键 是一个非常重要的功能,用于确保表中数据的唯一性和完整性。主键是每个表中用来唯一标识记录的字段或字段组合。每个表只能有一个主键,主键可以由一个或多个列组成,多个列组成的主键叫 复合主键。
当选择 主键 选项时,C# 代码中会自动为该字段生成 [key] 属性或 HasKey 方法。
如果表中不指定主键,则会生成 [Keyless] 属性或 HasNoKey 方法。 无主键表主要用于不需要考虑每条数据唯一性的情况。无主键表主要为临时表、日志表、关联表等。例如,一个随机名称表(名称重复与否无关紧要)。虽然表可以没有主键,但通常不推荐。
复合主键 由两个或更多的列组成,这些列的值组合在一起形成唯一的标识符。当单一列无法满足唯一性要求时,可以指定多个字段组成主键来确保记录的唯一性。每个列单独的值可能在表中是重复的,但组合起来的值必须是唯一的。比如OrderDetails表中一个orderid可以包含多个商品,那么将orderid和prodctid组合起来建立一个复合主键就可以唯一标识每一条记录。在多对多关系中,经常使用复合主键作为外键,例如OrderDetails表的orderid和prodctid可以作为外键,引用Orders表和Products表的主键。虽然复合主键在某些场景非常有用,但也需要注意带来的性能影响和管理复杂性。
集合
将某个字段设置为 集合 类型,表示该字段支持存储多个值,而不是单一的值,也就是说,该字段可以存储一个数据集合如列表、数组、集合或其他形式的多个元素,而不只是一个单一的项。
集合类型的字段通常用于存储多重数据的场景。例如,在多对多关系中可以使用集合类型的字段来存储与其他表的多个关联(比如一个学生可能有多个课程,一个课程可能被多个学生选修)。假如你希望在单个字段中存储多个相关数据项(如多个电话号码、多个电子邮件地址等),也可以使用集合来表示这些数据。
外键
外键约束用于确保数据之间的关系完整性,防止出现无效或孤立的数据。例如,当某个表中的外键列指定另一个表的主键列时,在插入数据时,必须确保外键列的值在参照表中已存在。
您可以通过以下方式添加外键到当前外键列表。
- 方式1:在 实体(表) 选项卡 > 外键 中点击 添加,然后选择当前表中需要创建外键约束的列(该列将作为外键),选择主键表(即外键所参照的表)及列(即作为外键参照的主键或唯一键列)。
- 方式2:在设计器视窗中用鼠标点击当前表中需要创建外键约束的列,然后拖拽鼠标到参照表中的主键,两列之间出现一条虚线,松开鼠标后虚线将变成带箭头实线。箭头的方向从包含外键的表(源表)指向包含主键或唯一字段的参照表。
实体(表) 选项卡中的外键列表和设计视窗中的可视化设计界面实时同步。当你通过方式1创建了一个外键约束时,可视化设计界面中也会在两个字段之间同步画一条带箭头的实线;反之亦然,当你通过方式2创建了一个外键约束时,实体(表) 选项卡中的外键列表也会自动添加外键字段和主键/唯一字段连接。
当前表可以和一个或多个主键表建立一个或多个外键约束:
- 一对多:一个表的记录可以与另一个表的多条记录相关联。例如:customer表与order表之间的关系就是一对多关系,外键约束为:从order表(多方表)的字段customer_id(外键字段)指向customer表(一方表)的id字段(主键)。
- 多对多:两个表通过一个中介表来建立关联。例如students和courses之间通过交叉表student_courses来建立多对多的关系。外键约束为:从交叉表的外键字段分别指向两个主表的主键。
- 一对一:一个表的记录只与另一个表的一条记录相关联。例如:employee表和employeedetails表之间的关系,外键约束为:从employee表的字段指向employeedetails表的字段,表示每个员工有一条对应的员工详细信息记录。
外键创建完成后,您可以点击外键左边的 编辑 图标为当前外键指定以下设置:
- 外键名称:外键约束的名字。
- 删除规则:如果删除参照表的主键,外键约束将根据指定的动作处理数据:不执行任何操作、级联、设置 Null、设置默认值。
- 不执行任何操作:当参照表的主键被删除时,当前表不做任何操作。 当外键列设置为不可空时,可选择此选项。
- 级联:当参照表的主键被删除时,当前表中与其相关联的所有记录也会被自动删除。
- 设置 Null:当参照表的主键被删除时,当前表中与其相关联的所有记录的外键值都会被设置为空。 当外键列设置为可空时,可选择此选项。
- 设置默认值:当参照表的主键被删除时,当前表中与其相关联的所有记录的外键值都会被设置为默认值。当该外键列设置了默认值时,可选择此选项。
- 描述:对该外键的描述。
索引
选择适当的列创建索引可以提高数据库查询性能。索引为表中的字段或字段组合提供快速访问路径。
您可以添加新索引到当前索引列表。在 实体(表) 选项卡 > 索引 中点击 添加,然后选择需要创建索引的列,并设置索引列的排序方式(升序或降序)。您可以创建单列索引(为每个列分别创建一个索引),也可以创建多列索引(将多个列组合创建一个索引)。
索引创建完成后,您可以点击索引左边的 编辑 图标为当前索引指定以下设置:
- 索引名称:索引的名称。
- 唯一:指定该索引是否为唯一索引。如果索引是唯一的,则该索引列中的每个值不能重复。
- 描述:对该索引的描述。
"数据库"选项页
数据库 选项卡主要用于配置和管理数据库连接的基本信息,包括以下设置:
名称 -- 数据库名称。
类型 -- 数据库类型。支持的类型包括:MySQL、PostgreSQL、SQL Server、Oracle、SQLite。
连接字符串 -- 连接到数据库所需的详细信息,例如:数据库的地址、端口、用户名、密码、数据库名称等等。连接字符串的格式取决于数据库类型,例如:
MySQL:server=myServerAddress;Database=myDatabase;Uid=myUsername;Pwd=myPassword;
SQL Server:server=myServerAddress;Database=myDatabase;UserId=myUsername;Password=myPassword;
PostgreSQL:Host=myServer;Port=5432;Usename=myUser;Password=myPassword;Database=myDatabase;
描述 -- 关于数据库的作用或配置的简短描述。
自定义唯一标识
右键点击项目节点,选择 自定义唯一标识。
在 自定义唯一标识 窗口中,您可以使用序列、流水号等生成唯一的标识符。这些标识符可以用作跨表的唯一标识。
序列
序列是数据库中的一个对象,它用于生成唯一的数字序列。序列是独立于任何表的,可以在多个表或列中共享,并且每次获取序列值时会根据设定的规则递增或递减。
在 自定义唯一标识 窗口左边的 序列 类别中点击 添加 图标,然后指定以下序列设置:
名称:序列的名称。通过序列名称可以引用并操作序列。
重置策略:指定序列达到最大值后的行为。
- 无:一旦序列达到最大值,它将停止生成新的值。
- 按最大值:一旦序列达到最大值,它将重新开始从最小值生成序列值。
数据类型:指定序列值的数据格式。数据类型决定了序列值的范围和存储方式,影响序列能够生成的最大数字值。
步长
- 起始值:序列的起始数字,它是序列的第一个值,通常设置为1。
- 增量值:序列值每次递增或递减的量,可以设置为任何正整数或负整数,默认情况下,通常为1。
范围限制
最小值:序列能够生成的最小数字。
最大值:序列能够生成的最大数字。
流水号
流水号通常用于生成唯一的递增的标识符,它在许多业务场景中都有广泛应用,如订单号、发票号、客户编号等等。
在 自定义唯一标识 窗口左边的 流水号 类别中点击 添加 图标,然后指定以下流水号设置:
名称:流水号的名称。
生成策略:指定流水号值如何生成。目前只支持 种子表 策略。
数据库:存储流水号生成信息的数据库。
种子表名称:存储和管理流水号起始值及其他相关信息的表。
重置策略:指定流水号的重置方式。
- 无:一旦流水号达到最大值,它将停止生成新的值。
- 按年:每年从起始值开始生成流水号。一旦达到最大值,重新开始从最小值生成流水号。
- 按月:每月从起始值开始生成流水号。一旦达到最大值,重新开始从最小值生成流水号。
- 按日:每日从起始值开始生成流水号。一旦达到最大值,重新开始从最小值生成流水号。
步长
- 起始值:流水号的起始数字,它是流水号的第一个值,通常设置为1。
- 增量值:流水号每次递增或递减的量,可以设置为任何正整数或负整数,默认情况下,通常为1。
格式:流水号的显示格式,通常由字母、数字和分隔符组成。格式确保流水号符合业务的具体要求。
自定义数据结构
右键点击项目节点,选择 自定义数据结构。自定义数据结构 窗口用于创建和管理枚举、模型等数据结构。数据结构用于定义应用程序中的数据类型、数据组织形式和数据之间的关系。
枚举
枚举是一种数据类型,它表示有限的几个可能值。通常用于定义具有特定限制的一组常量或选项。这些常量代表某种类型的状态、类别、标识符等。
在 自定义数据结构 窗口,用户可以创建枚举类型,并为其定义一组值。例如,创建一个用于表示订单状态的枚举:
在窗口左边列表 枚举 类别中点击 添加 图标,在中间窗口中设置枚举名称为OrderStatus,并添加三个字段:Pending、Shipped、Completed表示订单状态。
右边 常规 选项卡提供了一些配置项,帮助用户定义和管理枚举的基本信息。
如果在中间窗口中选择枚举,则可以在 常规 选项卡中配置以下信息:
名称:枚举的实际名称,通常在代码中使用。
显示名称:枚举的显示名称,通常在界面中使用。
描述:对枚举的详细描述或备注。
位标志枚举:位标志枚举允许将多个枚举值组合在一起表示不同的选项或状态。通常用于表示可以同时选中的多个选项,比如权限、状态等。例如,你有一个表示用户权限的枚举,可能会有“读取”、“写入”和“删除”权限,你希望一个用户可以同时拥有这些权限,这时就可以使用位标志枚举来实现。
为了让位标志枚举正常工作,枚举值通常会赋予不同的位,如1、2、4、8等。这种组合使得可以通过位运算(如AND、OR)来设置、修改或检查特性的枚举值。
如果在中间窗口中选择某个枚举字段,则可以在 常规 选项卡中配置以下信息:
- 名称:枚举字段的实际名称,通常在代码中使用。
- 显示名称:枚举字段的显示名称,通常在界面中使用。
- 值:枚举字段的值。通常用于表示某种状态或选项,例如权限、状态码、操作类型等。默认情况下,枚举字段的值从0开始递增。你也可以手动指定值。这些值可以是整数、位标志等。
- 描述:对枚举字段的详细描述。
枚举的使用可以简化数据存储和验证。例如,在实体(表)中创建字段时可以将枚举作为字段类型使用。
当枚举被字段使用后,常规 选项卡的下方 被引用 选项卡中将显示枚举在项目中被引用的位置和次数。
- 引用地址:引用了该枚举的文件或文件列表。
- 引用次数:枚举在文件中被引用的次数。
模型
模型是一种描述和组织数据的结构。它用于定义一组相关的数据项或属性(例如用户的姓名、年龄等)。模型通常对应着数据库表,通过模型,我们可以像操作普通对象一样操作数据库中的记录、表单数据或其他复杂数据结构。
SnapDevelop 提供了部分内置模型,例如用户登录、注册、操作结果反馈、分页查询等,以提高开发效率。内置模型自动化生成与数据库表对应的数据结构,并提供与数据库交互的基本功能。另外,对于在实体文件中添加的每一个实体表都会自动创建一个同名的模型,开发人员通过操作此模型来操作实体表的数据。
用户也可以根据业务需求创建模型,定义数据结构和规则。
在 自定义数据结构 窗口左边列表 模型 类别中点击 添加 图标,在中间窗口中设置模型名称,并添加字段。
右边 常规 选项卡提供了一些选项用于帮助用户定义和管理模型的基本信息、数据结构及校验规则。
如果在中间窗口中选择模型,则可以在 常规 选项卡中为模型配置以下信息:
- 名称:模型的实际名称,通常在代码中使用。
- 显示名称:模型的显示名称,通常在界面中使用。
- 描述:对模型的详细描述或备注。
如果在中间窗口中选择模型的某个字段,则可以在 常规 选项卡中为字段配置以下信息:
- 名称:字段的实际名称,通常在代码中使用。
- 显示名称:字段的显示名称,通常在界面中使用。
- 数据类型:列的数据类型。 例如,Int32 数据类型将在 C# 代码中定义为 int 类型。支持的数据类型包括:
- 整数类型:Int16、Int32、Int64、UInt16、UInt32、UInt64
- 字符类型:String、Char
- 日期时间类型:DateTime、DateTimeOffset、DateOnly、TimeOnly、TimeSpan
- 浮动类型:Decimal、Single、Double
- 其他:Boolean、Guid、Byte、枚举、模型
- 默认值:字段的默认值。在插入新记录时,如果该字段没有显式指定值时,将自动使用默认值。
- 可空:当选择 可空 选项时,该字段将允许为空值。 对于关键字段如主键或约束字段,通常会设置为不可空,以确保数据的完整性。
- 集合:详见以下小节。
- 计算列:该字段是否为计算列。计算列的值由其他列的值通过表达式或公式自动计算得出。
- 表达式:指定定义计算列的值的表达式、公式或函数,例如,可以将两列的和、差、乘积或其他计算逻辑作为计算列的定义。
- 描述:对字段的详细描述或备注。
- 校验:详见以下小节。
模型的使用可以简化数据操作,例如,在实体(表)中创建字段时可以将模型作为字段类型直接使用,实现将数据表中的某个字段映射为一个对象,使得开发者可以直接操作更复杂的数据结构。例如:假设有一个orders表,其中一个字段为user,user是usermodel类型的字段,也就是user字段直接映射到usermodel模型,这样user字段就会是一个完整的用户对象(包含用户ID、电子邮件等多个属性),而不是简单的用户ID,这样开发人员就可以方便地访问或存储整个用户对象的信息,而不需要拆分成多个字段。
当模型被使用后,常规 选项卡的下方 被引用 选项卡中将显示模型在项目中被引用的位置和次数。
- 引用地址:引用了该模型的文件或文件列表。
- 引用次数:模型在文件中被引用的次数。
集合
将某个字段设置为 集合 类型,表示该字段支持存储多个值,而不是单一的值,也就是说,该字段可以存储一个数据集合如列表、数组、集合或其他形式的多个元素,而不只是一个单一的项。
集合类型的字段通常用于存储多重数据的场景。例如,在多对多关系中可以使用集合类型的字段来存储与其他表的多个关联(比如一个学生可能有多个课程,一个课程可能被多个学生选修)。假如你希望在单个字段中存储多个相关数据项(如多个电话号码、多个电子邮件地址等),也可以使用集合来表示这些数据。
校验
您可以为字段添加一种或多种校验规则以确保数据的准确性、一致性和完整性,通过对字段进行校验,可以防止无效或不符合要求的数据进入系统。
必要校验:必要校验确保字段不能为空,数据必须提供。适用于所有必填字段。
正则校验:正则校验用于根据特定的模式对字段值进行验证,确保字段值符合特性的格式要求,比如电子邮件地址、电话号码、日期等字段需要正则校验。
通过正则表达式,可以定义复杂的规则来匹配字段数据。点击展开 正则校验 输入框,您可以手动输入用于验证数据的表达式,也可以从 常用正则表达式 列表中选择系统预定义的表达式(例如,日期时间、域名、电子邮件、IP 地址、电话、URL 等)。 选择预定义表达式后,您还可以根据需要修改预定义表达式。 在 校验错误信息 输入框中,指定正则校验失败时显示的消息。
长度校验:长度校验确保字段值的长度在指定范围内,不超过最大长度或小于最小长度。例如:用户名、密码等字符类型字段通常需要长度校验。
值校验:值校验确保字段值在指定的数值或日期范围内。例如年龄、价格、日期等数值类型或日期类型字段通常需要值校验。
自定义数据源
自定义数据源是指在系统中通过配置和管理外部数据源或静态数据源,以便前端页面能够通过调用这些数据源来获取所需的数据。这种方式使得前端能够从不同的数据来源(如外部API、静态文件等)获取数据,提升了数据的灵活性和可扩展性。
下面是对添加外部数据源和静态数据源的详细描述。
外部数据源
外部数据源通常指的是系统以外的、由其他服务或平台提供的数据来源,通常通过网络请求(如HTTP请求)获取数据。这些数据源可能是外部API、Web服务、或者是与第三方系统进行集成的接口。
右键点击项目节点,选择 自定义数据源。在 数据源 窗口的左边 外部 类别中点击 +添加 图标,然后指定以下信息:
- 名称:为该外部数据源指定一个唯一的标识名称,便于在平台中管理和引用。
- 分组:将外部数据源按不同类别进行分组,用于管理和归类。分组可以是根据数据源的类型、用途等来划分的。
- URL:外部数据源的接口地址。通常是一个HTTP或HTTPS链接,系统会通过这个URL向外部数据源发起请求并获取数据。例如:https://api.example.com/getUserData。
示例:
假设你要添加一个外部数据源,用于从一个外部API获取用户数据:
名称:UserDataAPI
分组:用户数据
URL:https://api.example.com/getUserData
添加外部数据源后,可以添加请求参数和指定返回结果的数据类型,确保系统能够正确地与外部服务进行交互。
- 请求参数:用于向外部数据源发送请求时传递的各种参数。你可以指定参数的名称、数据类型、来源(Query、Route、Header)等, 确保数据请求符合外部API的要求。
- 返回结果的数据类型:指定外部数据源返回的数据类型。它可以帮助系统正确解析和处理从外部数据源(如API、Web服务等)获取的响应数据。
以下是关于请求参数设置的详细描述:
名称:请求参数的名字,用于标识该参数。例如,外部API可能需要一个名为userId的参数来查询某个用户的数据,或者需要一个dateRange来限定数据的时间范围。参数名称必须与外部API的要求保持一致。
数据类型:指定请求参数的数据类型。
来源:指定请求参数来源的方式。通常有以下几种:
- Query:参数通过查询字符串附加在URL中,例如 https://api.example.com/data?userId=123。这种方式用于GET请求。
- Route:参数作为路径的一部分传递。例如 https://api.example.com/data/123,这里的123就是路径参数,代表userId。
- Header:参数作为HTTP请求的头部传递,用于发送一些身份验证信息、API密钥、用户代理等。例如,Authorization: Bearer
.
示例:
Query:https://api.example.com/data?userId=123&startDate=2023-01-01
Route:https://api.example.com/data/123,其中 123是 userId。
Header:在HTTP头部添加 Authorization: Bearer
来进行身份验证。
在系统中配置这个外部数据源后,前端可以通过该配置进行API调用,获取用户数据并展示到页面上。
静态数据源
静态数据源通常指的是不依赖外部服务或接口的数据源,数据是预先定义和存储在平台中的,比如JSON文件或硬编码的静态数据。这些数据不随时间或外部服务变化,而是固定的,通常用于提供某些常见的、无需动态获取的静态信息(如常见的下拉框选项、配置项等)。
右键点击项目节点,选择 自定义数据源。在 数据源 窗口的左边 静态 类别中点击 +添加 图标,然后指定以下信息:
名称:为静态数据源指定一个唯一的名称,用于在平台中识别。
分组:为静态数据源分组,便于管理。
数据类型:指定静态数据源的数据类型。常见的数据类型有:
- 数据结构:静态数据源可以是一个数据结构(如对象或数组),这些数据会在系统内部定义,并可能会被前端直接引用。比如,你可能有一个静态数据源,它包含了一些固定的国家列表,每个国家有 Name 和 code 属性。
- 数据字典:数据字典通常是键值对的数据集合,用于为某些字段提供固定选项。比如,你可能有一个“状态字典”静态数据源,包含“待审核”、“已批准”、“已拒绝”等选项。
JSON数据:当指定为数据结构类型时,你需要提供具体的静态数据(通常是JSON格式的数据)。
示例:
假设你要添加一个静态数据源,包含国家列表:
名称:CountryList
分组:下拉列表
数据类型:数据结构
JSON数据:
[
{ "Code": "US", "Name": "United States" },
{ "Code": "CN", "Name": "China" },
{ "Code": "IN", "Name": "India" },
{ "Code": "GB", "Name": "United Kingdom" }
]
这个静态数据源将提供一个国家列表,前端页面可以通过调用这个数据源来填充下拉框,提供用户选择。