跳到主要内容

创建数据源

在 NineData 中创建一个新的数据库连接配置。

请求地址:/openapi/v1/datasource/create

请求方法:POST

请求参数

参数类型是否必选说明示例
datasourceTypeString数据源类型。支持 MYSQLMARIADBPOSTGRESQLSQLSERVERDAMENGKINGBASEKINGBASE_ORACLEMILVUSMONGODB。取值大小写不敏感,建议使用大写。MONGODB
nameString指定数据源名称。生产环境 MongoDB
usernameString访问该数据源的账号。root
passwordString访问该数据源的密码。Root
hostString数据源的连接地址。MongoDB 单机模式传入 IP 或域名;副本集或分片集群传入 host1:port1,host2:port2 格式的拼接字符串。192.168.1.1
portInteger数据源的端口号。MongoDB 单机模式需填写;MongoDB 副本集或分片集群模式不填,端口信息写在 host 中。27017
envIdString为该数据源绑定到某个环境。您可以调用查询环境信息接口获取 envIdenv-product
regionIdString为该数据源指定所属地域。您需要调用查询地区信息接口获取 regionId以获取到的 regionId 为准
networkTypeString指定数据源的连接方式。当前仅支持公网访问方式,取值为 PublicPublic
extraConfigObject数据源专属配置。不同类型数据源的专有参数放在该对象中。{"authDB":"admin"}
sslConfigObjectSSL 配置。当前仅 MySQL、SQLServer、PostgreSQL 支持;MongoDB 不支持传入该字段。{"securityConfig":"PREFERRED"}

MongoDB 专属 extraConfig 参数

参数类型是否必选默认值说明示例
mongoDBDeploymentTypeStringstandaloneMongoDB 部署类型。取值:standalone(单机)、replicaSet(副本集)、shardedCluster(分片集群)。replicaSet
authDBString-认证数据库。admin
readPreferenceString-读取偏好。取值:primaryprimaryPreferredsecondarysecondaryPreferrednearestsecondaryPreferred
replicaSetString-副本集名称。MongoDB 副本集模式下可传入该参数。rs0

SSL 配置参数

仅 MySQL、SQLServer、PostgreSQL 数据源支持传入 sslConfig。不同数据源类型支持的字段不同。

参数类型是否必选适用数据源说明示例
securityConfigStringMySQL、PostgreSQLSSL 安全模式。MySQL 取值:REQUIREDPREFERRED;PostgreSQL 取值:PreferRequireVerify-CAVerify-FullPREFERRED
sslCipherStringMySQLSSL 加密套件。TLS_AES_256_GCM_SHA384
sslCAStringMySQL、SQLServer、PostgreSQLCA 证书内容。-----BEGIN CERTIFICATE-----
sslCAFileNameStringMySQL、SQLServer、PostgreSQLCA 证书文件名。ca.pem
sslClientCertStringMySQL、PostgreSQL客户端证书内容。-----BEGIN CERTIFICATE-----
sslClientCertFileNameStringMySQL、PostgreSQL客户端证书文件名。client-cert.pem
sslClientKeyStringMySQL、PostgreSQL客户端私钥内容。-----BEGIN PRIVATE KEY-----
sslClientKeyFileNameStringMySQL、PostgreSQL客户端私钥文件名。client-key.pem
sslIndentifyBooleanMySQL是否校验服务器身份。字段名请按接口使用 sslIndentifyfalse
hostNameInCertificateStringSQLServer服务器证书中的主机名。db.example.com
trustServerCertificateBooleanSQLServer是否信任服务器证书。false

请求示例

MongoDB 单机版:

{
"name": "生产环境 MongoDB",
"username": "root",
"password": "Root",
"host": "192.168.1.10",
"port": 27017,
"datasourceType": "MongoDB",
"regionId": "aliyun-cn-hangzhou",
"envId": "env-product",
"networkType": "Public",
"extraConfig": {
"mongoDBDeploymentType": "standalone",
"authDB": "admin"
}
}

MySQL SSL:

{
"name": "生产环境 MySQL",
"username": "root",
"password": "Root",
"host": "192.168.1.10",
"port": 3306,
"datasourceType": "MYSQL",
"regionId": "aliyun-cn-hangzhou",
"envId": "env-product",
"networkType": "Public",
"sslConfig": {
"securityConfig": "PREFERRED",
"sslIndentify": false
}
}

MongoDB 副本集版:

{
"name": "生产环境 MongoDB 副本集",
"username": "root",
"password": "Root",
"host": "192.168.1.10:27017,192.168.1.11:27017",
"datasourceType": "MongoDB",
"regionId": "aliyun-cn-hangzhou",
"envId": "env-product",
"networkType": "Public",
"extraConfig": {
"mongoDBDeploymentType": "replicaSet",
"authDB": "admin",
"readPreference": "secondaryPreferred",
"replicaSet": "rs0"
}
}

返回参数

参数类型说明示例
successBool接口调用是否成功。返回值:truefalsetrue
requestIdString请求 ID。Mi6y0FCN-BHEEaHAnCFFp9DFdAAk0OUZ
dataArray创建的数据源详情,包含数据源 ID(datasourceId)信息。{
"datasourceId": "ds-d92r4i7z1a90"
}

调用成功示例

{
"success": true,
"requestId": "Uf0f0KQB-BHEEjCWnCGHo9FSdCBi1GPC",
"data": {
"datasourceId": "ds-d92r4i7z1a90"
}
}