管理端点
Data Service(测试版)中的端点是一个可以自定义执行 SQL 语句的 Web API。你可以为 SQL 语句指定参数,例如在 WHERE
子句中使用的值。当客户端调用端点并在请求 URL 中提供参数值时,端点会使用提供的参数执行 SQL 语句,并将结果作为 HTTP 响应的一部分返回。
本文介绍如何在 TiDB Cloud 控制台中管理 Data App 中的端点。
开始之前
在创建端点之前,请确保以下内容:
- 你已创建集群和 Data App。更多信息,请参见创建 Data App。
- 端点将要操作的数据库、表和列已经存在于目标集群中。
在调用端点之前,请确保你已在 Data App 中创建了 API 密钥。更多信息,请参见创建 API 密钥。
创建端点
在 Data Service 中,你可以自动生成端点、手动创建端点或添加预定义的系统端点。
提示:
你也可以从 SQL Editor 中的 SQL 文件创建端点。更多信息,请参见从 SQL 文件生成端点。
自动生成端点
在 TiDB Cloud Data Service 中,你可以按以下方式一次性自动生成一个或多个端点:
导航到项目的 Data Service 页面。
在左侧窗格中,找到目标 Data App,点击 App 名称右侧的 +,然后点击自动生成端点。此时会显示端点生成对话框。
在对话框中,执行以下操作:
为要生成的端点选择目标集群、数据库和表。
为要生成的端点选择至少一个 HTTP 操作(如
GET(检索)
、POST(创建)
和PUT(更新)
)。对于你选择的每个操作,TiDB Cloud Data Service 将生成一个相应的端点。如果你选择批量操作(如
POST(批量创建)
),生成的端点允许你在单个请求中操作多行数据。如果你选择的表包含向量数据类型,你可以启用向量搜索操作选项并选择向量距离函数,以生成一个向量搜索端点,该端点会根据你选择的距离函数自动计算向量距离。支持的向量距离函数包括:
VEC_L2_DISTANCE
(默认):计算两个向量之间的 L2 距离(欧几里得距离)。VEC_COSINE_DISTANCE
:计算两个向量之间的余弦距离。VEC_NEGATIVE_INNER_PRODUCT
:使用两个向量之间内积的负值计算距离。VEC_L1_DISTANCE
:计算两个向量之间的 L1 距离(曼哈顿距离)。
(可选)为操作配置超时时间和标签。所有生成的端点将自动继承配置的属性,可以根据需要稍后修改。
(可选)自动部署端点选项(默认禁用)控制是否启用生成端点的直接部署。启用时,将跳过草稿审查过程,生成的端点将立即部署,无需进一步手动审查或批准。
点击生成。
生成的端点显示在端点列表的顶部。
检查新端点的生成端点名称、SQL 语句、属性和参数。
端点名称:生成的端点名称采用
/<选择的表名>
格式,请求方法(如GET
、POST
和PUT
)显示在端点名称之前。例如,如果选择的表名是sample_table
且选择的操作是POST(创建)
,生成的端点显示为POST /sample_table
。- 如果选择了批量操作,TiDB Cloud Data Service 会在生成的端点名称后附加
/bulk
。例如,如果选择的表名是/sample_table
且选择的操作是POST(批量创建)
,生成的端点显示为POST /sample_table/bulk
。 - 如果选择了
POST(向量相似度搜索)
,TiDB Cloud Data Service 会在生成的端点名称后附加/vector_search
。例如,如果选择的表名是/sample_table
且选择的操作是POST(向量相似度搜索)
,生成的端点显示为POST /sample_table/vector_search
。 - 如果已经存在具有相同请求方法和端点名称的端点,TiDB Cloud Data Service 会在生成的端点名称后附加
_dump_<随机字母>
。例如,/sample_table_dump_EUKRfl
。
- 如果选择了批量操作,TiDB Cloud Data Service 会在生成的端点名称后附加
SQL 语句:TiDB Cloud Data Service 根据表列规范和选择的端点操作自动编写生成端点的 SQL 语句。你可以点击端点名称在页面中间部分查看其 SQL 语句。
端点属性:TiDB Cloud Data Service 根据你的选择自动配置端点路径、请求方法、超时时间和标签。你可以在页面右侧窗格中找到这些属性。
端点参数:TiDB Cloud Data Service 自动为生成的端点配置参数。你可以在页面右侧窗格中找到这些参数。
如果你想修改生成端点的详细信息,如名称、SQL 语句、属性或参数,请参考开发端点中提供的说明。
手动创建端点
要手动创建端点,请执行以下步骤:
- 导航到项目的 Data Service 页面。
- 在左侧窗格中,找到目标 Data App,点击 App 名称右侧的 +,然后点击创建端点。
- 如有必要,更新默认名称。新创建的端点将添加到端点列表的顶部。
- 根据开发端点中的说明配置新端点。
添加预定义系统端点
Data Service 提供了一个包含预定义系统端点的端点库,你可以直接将这些端点添加到你的 Data App 中,从而减少端点开发的工作量。目前,该库仅包含 /system/query
端点,该端点允许你通过简单地在预定义的 sql
参数中传递语句来执行任何 SQL 语句。
要将预定义系统端点添加到你的 Data App 中,请执行以下步骤:
导航到项目的 Data Service 页面。
在左侧窗格中,找到目标 Data App,点击 App 名称右侧的 +,然后点击管理端点库。
此时会显示端点库管理对话框。目前,对话框中仅提供执行查询(即
/system/query
端点)。要将
/system/query
端点添加到你的 Data App 中,将执行查询开关切换到已添加。提示:
要从你的 Data App 中删除已添加的预定义端点,将执行查询开关切换到已删除。
点击保存。
添加的系统提供的端点将显示在端点列表的顶部。
检查新端点的端点名称、SQL 语句、属性和参数。
- 端点名称:端点名称和路径为
/system/query
,请求方法为POST
。 - SQL 语句:
/system/query
端点不附带任何 SQL 语句。你可以在页面中间部分找到 SQL 编辑器,并在其中编写所需的 SQL 语句。请注意,为/system/query
端点编写的 SQL 语句将保存在 SQL 编辑器中,以便你下次可以进一步开发和测试,但不会保存在端点配置中。 - 端点属性:在页面右侧窗格的属性标签页中,你可以找到端点属性。与其他自定义端点不同,系统端点只能自定义
timeout
和max rows
属性。 - 端点参数:在页面右侧窗格的参数标签页中,你可以找到端点参数。
/system/query
端点的参数是自动配置的,不能修改。
- 端点名称:端点名称和路径为
开发端点
对于每个端点,你可以编写要在 TiDB 集群上执行的 SQL 语句,为 SQL 语句定义参数,或管理名称和版本。
配置属性
在端点详情页面的右侧窗格中,你可以点击属性标签页来查看和配置端点的属性。
基本属性
- 路径:用户用来访问端点的路径。
高级属性
超时时间(毫秒):端点的超时时间,以毫秒为单位。
最大行数:端点可以操作或返回的最大行数。
标签:用于标识一组端点的标签。
分页:此属性仅在请求方法为
GET
且端点的最后一个 SQL 语句是SELECT
操作时可用。当启用分页时,你可以在调用端点时通过指定page
和page_size
作为查询参数来对结果进行分页,例如https://<region>.data.tidbcloud.com/api/v1beta/app/<App ID>/endpoint/my_endpoint/get_id?page=<页码>&page_size=<每页大小>
。更多信息,请参见调用端点。缓存响应:此属性仅在请求方法为
GET
时可用。当启用缓存响应时,TiDB Cloud Data Service 可以在指定的生存时间(TTL)期间内缓存你的GET
请求返回的响应。生存时间(秒):此属性仅在启用缓存响应时可用。你可以使用它来指定缓存响应的生存时间(TTL)期间,以秒为单位。在 TTL 期间内,如果你再次发出相同的
GET
请求,Data Service 会直接返回缓存的响应,而不是再次从目标数据库获取数据,这提高了你的查询性能。批量操作:此属性仅在请求方法为
POST
或PUT
时可见。当启用批量操作时,你可以在单个请求中操作多行数据。例如,在调用端点时,你可以通过在 curl 命令的--data-raw
选项中将数据对象数组放入对象的items
字段来在单个POST
请求中插入多行数据。
编写 SQL 语句
在端点详情页面的 SQL 编辑器中,你可以编写和运行端点的 SQL 语句。你也可以简单地输入 --
后跟你的指令,让 AI 自动生成 SQL 语句。
选择集群。
在 SQL 编辑器的上部,从下拉列表中选择你想要执行 SQL 语句的集群。然后,你可以在右侧窗格的架构标签页中查看此集群的所有数据库。
根据你的端点类型,执行以下操作之一来选择数据库:
- 预定义系统端点:在 SQL 编辑器的上部,从下拉列表中选择目标数据库。
- 其他端点:在 SQL 编辑器中编写 SQL 语句来指定目标数据库。例如,
USE database_name;
。
编写 SQL 语句。
在 SQL 编辑器中,你可以编写诸如表连接查询、复杂查询和聚合函数等语句。你也可以简单地输入
--
后跟你的指令,让 AI 自动生成 SQL 语句。要定义参数,你可以在 SQL 语句中将其作为变量占位符插入,如
${ID}
。例如,SELECT * FROM table_name WHERE id = ${ID}
。然后,你可以点击右侧窗格的参数标签页来更改参数定义和测试值。更多信息,请参见参数。在定义数组参数时,参数会自动转换为 SQL 语句中的多个逗号分隔值。为确保 SQL 语句有效,你需要在某些 SQL 语句(如
IN
)中在参数周围添加括号(()
)。例如,如果你定义一个测试值为1,2,3
的数组参数ID
,使用SELECT * FROM table_name WHERE id IN (${ID})
来查询数据。运行 SQL 语句。
如果你在 SQL 语句中插入了参数,请确保你已在右侧窗格的参数标签页中为参数设置了测试值或默认值。否则,将返回错误。
对于 macOS:
如果编辑器中只有一个语句,要运行它,请按 ⌘ + Enter 或点击 运行。
如果编辑器中有多个语句,要按顺序运行其中一个或多个语句,请将光标放在目标语句上或用光标选择目标语句的行,然后按 ⌘ + Enter 或点击运行。
要按顺序运行编辑器中的所有语句,请按 ⇧ + ⌘ + Enter,或用光标选择所有语句的行并点击运行。
对于 Windows 或 Linux:
如果编辑器中只有一个语句,要运行它,请按 Ctrl + Enter 或点击 运行。
如果编辑器中有多个语句,要按顺序运行其中一个或多个语句,请将光标放在目标语句上或用光标选择目标语句的行,然后按 Ctrl + Enter 或点击运行。
要按顺序运行编辑器中的所有语句,请按 Shift + Ctrl + Enter,或用光标选择所有语句的行并点击运行。
运行语句后,你可以在页面底部的结果标签页中立即看到查询结果。
配置参数
在端点详情页面的右侧窗格中,你可以点击参数标签页来查看和管理端点中使用的参数。
在定义部分,你可以查看和管理参数的以下属性:
参数名称:名称只能包含字母、数字和下划线(
_
),并且必须以字母或下划线(_
)开头。不要使用page
和page_size
作为参数名称,这些是为请求结果分页保留的。必需:指定参数在请求中是否是必需的。对于路径参数,配置是必需的且不能修改。对于其他参数,默认配置是不必需的。
类型:指定参数的数据类型。对于路径参数,只支持
STRING
和INTEGER
。对于其他参数,支持STRING
、NUMBER
、INTEGER
、BOOLEAN
和ARRAY
。使用
STRING
类型参数时,不需要添加引号('
或"
)。例如,foo
对于STRING
类型是有效的,并被处理为"foo"
,而"foo"
被处理为"\"foo\""
。枚举值:(可选)指定参数的有效值,仅在参数类型为
STRING
、INTEGER
或NUMBER
时可用。- 如果将此字段留空,参数可以是指定类型的任何值。
- 要指定多个有效值,可以用逗号(
,
)分隔它们。例如,如果你将参数类型设置为STRING
并将此字段指定为foo, bar
,则参数值只能是foo
或bar
。
项目类型:指定
ARRAY
类型参数的项目类型。默认值:指定参数的默认值。
- 对于
ARRAY
类型,你需要用逗号(,
)分隔多个值。 - 确保值可以转换为参数的类型。否则,端点将返回错误。
- 如果你没有为参数设置测试值,在测试端点时将使用默认值。
- 对于
位置:指示参数的位置。此属性不能修改。
- 对于路径参数,此属性为
Path
。 - 对于其他参数,如果请求方法为
GET
或DELETE
,此属性为Query
。如果请求方法为POST
或PUT
,此属性为Body
。
- 对于路径参数,此属性为
在测试值部分,你可以查看和设置测试参数。这些值在你测试端点时用作参数值。确保值可以转换为参数的类型。否则,端点将返回错误。
重命名
要重命名端点,请执行以下步骤:
- 导航到项目的 Data Service 页面。
- 在左侧窗格中,点击目标 Data App 的名称以查看其端点。
- 找到要重命名的端点,点击 ... > 重命名,然后为端点输入新名称。
测试端点
要测试端点,请执行以下步骤:
提示:
如果你已将 Data App 导入到 Postman,你也可以在 Postman 中测试 Data App 的端点。更多信息,请参见在 Postman 中运行 Data App。
导航到项目的 Data Service 页面。
在左侧窗格中,点击目标 Data App 的名称以查看其端点。
点击要测试的端点的名称以查看其详细信息。
(可选)如果端点包含参数,你需要在测试之前设置测试值。
在端点详情页面的右侧窗格中,点击参数标签页。
展开测试值部分并为参数设置测试值。
如果你没有为参数设置测试值,将使用默认值。
点击右上角的测试。
提示:
或者,你也可以按 F5 来测试端点。
测试端点后,你可以在页面底部看到 JSON 格式的响应。有关 JSON 响应的更多信息,请参考端点的响应。
部署端点
要部署端点,请执行以下步骤:
导航到项目的 Data Service 页面。
在左侧窗格中,点击目标 Data App 的名称以查看其端点。
找到要部署的端点,点击端点名称以查看其详细信息,然后点击右上角的部署。
如果为你的 Data App 启用了审查草稿,将显示一个对话框供你审查所做的更改。你可以根据审查决定是否放弃更改。
点击部署确认部署。如果端点成功部署,你将收到端点已部署提示。
在端点详情页面的右侧窗格中,你可以点击部署标签页查看部署历史。
调用端点
要调用端点,你可以向端点的未部署草稿版本或已部署在线版本发送 HTTPS 请求。
提示:
如果你已将 Data App 导入到 Postman,你也可以在 Postman 中调用 Data App 的端点。更多信息,请参见在 Postman 中运行 Data App。
前提条件
在调用端点之前,你需要创建 API 密钥。更多信息,请参考创建 API 密钥。
请求
TiDB Cloud Data Service 生成代码示例来帮助你调用端点。要获取代码示例,请执行以下步骤:
导航到项目的 Data Service 页面。
在左侧窗格中,点击目标 Data App 的名称以查看其端点。
找到要调用的端点并点击 ... > 代码示例。此时会显示代码示例对话框。
提示:
或者,你也可以点击端点名称以查看其详细信息,然后点击右上角的 ... > 代码示例。
在对话框中,选择你要用来调用端点的环境和认证方法,然后复制代码示例。
环境:根据你的需要选择测试环境或在线环境。在线环境仅在你部署端点后可用。
认证方法:选择基本认证或摘要认证。
- 基本认证以 base64 编码文本的形式传输你的 API 密钥。
- 摘要认证以加密形式传输你的 API 密钥,这更安全。
与基本认证相比,摘要认证的 curl 代码包含一个额外的
--digest
选项。
以下是启用批量操作并使用摘要认证的
POST
请求的 curl 代码片段示例:要调用端点的草稿版本,你需要添加
endpoint-type: draft
头:curl --digest --user '<Public Key>:<Private Key>' \ --request POST 'https://<region>.data.tidbcloud.com/api/v1beta/app/<App ID>/endpoint/<Endpoint Path>' \ --header 'content-type: application/json'\ --header 'endpoint-type: draft' --data-raw '{ "items": [ { "age": "${age}", "career": "${career}" } ] }'你必须先部署端点,然后才能在在线环境中查看代码示例。
要调用端点的当前在线版本,使用以下命令:
curl --digest --user '<Public Key>:<Private Key>' \ --request POST 'https://<region>.data.tidbcloud.com/api/v1beta/app/<App ID>/endpoint/<Endpoint Path>' \ --header 'content-type: application/json'\ --data-raw '{ "items": [ { "age": "${age}", "career": "${career}" } ] }'将代码示例粘贴到你的应用程序中,根据需要编辑示例,然后运行它。
你需要将
<Public Key>
和<Private Key>
占位符替换为你的 API 密钥。更多信息,请参考管理 API 密钥。如果你的端点的请求方法为
GET
且为端点启用了分页,你可以通过用所需的值更新page=<页码>
和page_size=<每页大小>
的值来对结果进行分页。例如,要获取每页 10 项的第二页,使用page=2
和page_size=10
。如果你的端点的请求方法为
POST
或PUT
,根据你要操作的数据行填写--data-raw
选项。- 对于启用了批量操作的端点,
--data-raw
选项接受一个包含数据对象数组的items
字段的对象,这样你可以使用一个端点操作多行数据。 - 对于未启用批量操作的端点,
--data-raw
选项只接受一个数据对象。
- 对于启用了批量操作的端点,
如果端点包含参数,在调用端点时指定参数值。
响应
调用端点后,你可以看到 JSON 格式的响应。更多信息,请参见 Data Service 的响应和状态码。
取消部署端点
要取消部署端点,请执行以下步骤:
- 导航到项目的 Data Service 页面。
- 在左侧窗格中,点击目标 Data App 的名称以查看其端点。
- 找到要取消部署的端点,点击 ... > 取消部署。
- 点击取消部署确认取消部署。
删除端点
要删除端点,请执行以下步骤:
导航到项目的 Data Service 页面。
在左侧窗格中,点击目标 Data App 的名称以查看其端点。
点击要删除的端点的名称,然后点击右上角的 ... > 删除。
点击删除确认删除。
- 路径长度必须小于 64 个字符。
- 请求方法和路径的组合在 Data App 内必须是唯一的。
- 路径中只允许使用字母、数字、下划线(
_
)、斜杠(/
)和用大括号括起来的参数(如{var}
)。每个路径必须以斜杠(/
)开头,以字母、数字或下划线(_
)结尾。例如,/my_endpoint/get_id
。 - 对于用
{ }
括起来的参数,只允许使用字母、数字和下划线(_
)。每个用{ }
括起来的参数必须以字母或下划线(_
)开头。
端点 URL:(只读)默认 URL 根据相应集群所在的区域、Data App 的服务 URL 和端点的路径自动生成。例如,如果端点的路径是
/my_endpoint/get_id
,则端点 URL 是https://<region>.data.tidbcloud.com/api/v1beta/app/<App ID>/endpoint/my_endpoint/get_id
。要为 Data App 配置自定义域名,请参见 Data Service 中的自定义域名。请求方法:端点的 HTTP 方法。支持以下方法:
GET
:用于查询或检索数据,如SELECT
语句。POST
:用于插入或创建数据,如INSERT
语句。PUT
:用于更新或修改数据,如UPDATE
语句。DELETE
:用于删除数据,如DELETE
语句。
描述(可选):端点的描述。
管理端点
Data Service(测试版)中的端点是一个可以自定义执行 SQL 语句的 Web API。你可以为 SQL 语句指定参数,例如在 WHERE
子句中使用的值。当客户端调用端点并在请求 URL 中提供参数值时,端点会使用提供的参数执行 SQL 语句,并将结果作为 HTTP 响应的一部分返回。
本文介绍如何在 TiDB Cloud 控制台中管理 Data App 中的端点。
开始之前
在创建端点之前,请确保以下内容:
- 你已创建集群和 Data App。更多信息,请参见创建 Data App。
- 端点将要操作的数据库、表和列已经存在于目标集群中。
在调用端点之前,请确保你已在 Data App 中创建了 API 密钥。更多信息,请参见创建 API 密钥。
创建端点
在 Data Service 中,你可以自动生成端点、手动创建端点或添加预定义的系统端点。
提示:
你也可以从 SQL Editor 中的 SQL 文件创建端点。更多信息,请参见从 SQL 文件生成端点。
自动生成端点
在 TiDB Cloud Data Service 中,你可以按以下方式一次性自动生成一个或多个端点:
导航到项目的 Data Service 页面。
在左侧窗格中,找到目标 Data App,点击 App 名称右侧的 +,然后点击自动生成端点。此时会显示端点生成对话框。
在对话框中,执行以下操作:
为要生成的端点选择目标集群、数据库和表。
为要生成的端点选择至少一个 HTTP 操作(如
GET(检索)
、POST(创建)
和PUT(更新)
)。对于你选择的每个操作,TiDB Cloud Data Service 将生成一个相应的端点。如果你选择批量操作(如
POST(批量创建)
),生成的端点允许你在单个请求中操作多行数据。如果你选择的表包含向量数据类型,你可以启用向量搜索操作选项并选择向量距离函数,以生成一个向量搜索端点,该端点会根据你选择的距离函数自动计算向量距离。支持的向量距离函数包括:
VEC_L2_DISTANCE
(默认):计算两个向量之间的 L2 距离(欧几里得距离)。VEC_COSINE_DISTANCE
:计算两个向量之间的余弦距离。VEC_NEGATIVE_INNER_PRODUCT
:使用两个向量之间内积的负值计算距离。VEC_L1_DISTANCE
:计算两个向量之间的 L1 距离(曼哈顿距离)。
(可选)为操作配置超时时间和标签。所有生成的端点将自动继承配置的属性,可以根据需要稍后修改。
(可选)自动部署端点选项(默认禁用)控制是否启用生成端点的直接部署。启用时,将跳过草稿审查过程,生成的端点将立即部署,无需进一步手动审查或批准。
点击生成。
生成的端点显示在端点列表的顶部。
检查新端点的生成端点名称、SQL 语句、属性和参数。
端点名称:生成的端点名称采用
/<选择的表名>
格式,请求方法(如GET
、POST
和PUT
)显示在端点名称之前。例如,如果选择的表名是sample_table
且选择的操作是POST(创建)
,生成的端点显示为POST /sample_table
。- 如果选择了批量操作,TiDB Cloud Data Service 会在生成的端点名称后附加
/bulk
。例如,如果选择的表名是/sample_table
且选择的操作是POST(批量创建)
,生成的端点显示为POST /sample_table/bulk
。 - 如果选择了
POST(向量相似度搜索)
,TiDB Cloud Data Service 会在生成的端点名称后附加/vector_search
。例如,如果选择的表名是/sample_table
且选择的操作是POST(向量相似度搜索)
,生成的端点显示为POST /sample_table/vector_search
。 - 如果已经存在具有相同请求方法和端点名称的端点,TiDB Cloud Data Service 会在生成的端点名称后附加
_dump_<随机字母>
。例如,/sample_table_dump_EUKRfl
。
- 如果选择了批量操作,TiDB Cloud Data Service 会在生成的端点名称后附加
SQL 语句:TiDB Cloud Data Service 根据表列规范和选择的端点操作自动编写生成端点的 SQL 语句。你可以点击端点名称在页面中间部分查看其 SQL 语句。
端点属性:TiDB Cloud Data Service 根据你的选择自动配置端点路径、请求方法、超时时间和标签。你可以在页面右侧窗格中找到这些属性。
端点参数:TiDB Cloud Data Service 自动为生成的端点配置参数。你可以在页面右侧窗格中找到这些参数。
如果你想修改生成端点的详细信息,如名称、SQL 语句、属性或参数,请参考开发端点中提供的说明。