创建数据源
在 NineData 中创建一个新的数据库连接配置。
请求地址:/openapi/v1/datasource/create
请求方法:POST
请求参数
| 参数 | 类型 | 是否必选 | 说明 | 示例 |
|---|---|---|---|---|
| datasourceType | String | 是 | 数据源类型。支持 MYSQL、MARIADB、POSTGRESQL、SQLSERVER、DAMENG、KINGBASE、KINGBASE_ORACLE、MILVUS、MONGODB。取值大小写不敏感,建议使用大写。 | MONGODB |
| name | String | 是 | 指定数据源名称。 | 生产环境 MongoDB |
| username | String | 否 | 访问该数据源的账号。 | root |
| password | String | 否 | 访问该数据源的密码。 | Root |
| host | String | 是 | 数据源的连接地址。MongoDB 单机模式传入 IP 或域名;副本集或分片集群传入 host1:port1,host2:port2 格式的拼接字符串。 | 192.168.1.1 |
| port | Integer | 否 | 数据源的端口号。MongoDB 单机模式需填写;MongoDB 副本集或分片集群模式不填,端口信息写在 host 中。 | 27017 |
| envId | String | 否 | 为该数据源绑定到某个环境。您可以调用查询环境信息接口获取 envId。 | env-product |
| regionId | String | 否 | 为该数据源指定所属地域。您需要调用查询地区信息接口获取 regionId。 | 以获取到的 regionId 为准 |
| networkType | String | 否 | 指定数据源的连接方式。当前仅支持公网访问方式,取值为 Public。 | Public |
| extraConfig | Object | 否 | 数据源专属配置。不同类型数据源的专有参数放在该对象中。 | {"authDB":"admin"} |
| sslConfig | Object | 否 | SSL 配置。当前仅 MySQL、SQLServer、PostgreSQL 支持;MongoDB 不支持传入该字段。 | {"securityConfig":"PREFERRED"} |
MongoDB 专属 extraConfig 参数
| 参数 | 类型 | 是否必选 | 默认值 | 说明 | 示例 |
|---|---|---|---|---|---|
| mongoDBDeploymentType | String | 否 | standalone | MongoDB 部署类型。取值:standalone(单机)、replicaSet(副本集)、shardedCluster(分片集群)。 | replicaSet |
| authDB | String | 是 | - | 认证数据库。 | admin |
| readPreference | String | 否 | - | 读取偏好。取值:primary、primaryPreferred、secondary、secondaryPreferred、nearest。 | secondaryPreferred |
| replicaSet | String | 否 | - | 副本集名称。MongoDB 副本集模式下可传入该参数。 | rs0 |
SSL 配置参数
仅 MySQL、SQLServer、PostgreSQL 数据源支持传入 sslConfig。不同数据源类型支持的字段不同。
| 参数 | 类型 | 是否必选 | 适用数据源 | 说明 | 示例 |
|---|---|---|---|---|---|
| securityConfig | String | 否 | MySQL、PostgreSQL | SSL 安全模式。MySQL 取值:REQUIRED、PREFERRED;PostgreSQL 取值:Prefer、Require、Verify-CA、Verify-Full。 | PREFERRED |
| sslCipher | String | 否 | MySQL | SSL 加密套件。 | TLS_AES_256_GCM_SHA384 |
| sslCA | String | 否 | MySQL、SQLServer、PostgreSQL | CA 证书内容。 | -----BEGIN CERTIFICATE----- |
| sslCAFileName | String | 否 | MySQL、SQLServer、PostgreSQL | CA 证书文件名。 | ca.pem |
| sslClientCert | String | 否 | MySQL、PostgreSQL | 客户端证书内容。 | -----BEGIN CERTIFICATE----- |
| sslClientCertFileName | String | 否 | MySQL、PostgreSQL | 客户端证书文件名。 | client-cert.pem |
| sslClientKey | String | 否 | MySQL、PostgreSQL | 客户端私钥内容。 | -----BEGIN PRIVATE KEY----- |
| sslClientKeyFileName | String | 否 | MySQL、PostgreSQL | 客户端私钥文件名。 | client-key.pem |
| sslIndentify | Boolean | 否 | MySQL | 是否校验服务器身份。字段名请按接口使用 sslIndentify。 | false |
| hostNameInCertificate | String | 否 | SQLServer | 服务器证书中的主机名。 | db.example.com |
| trustServerCertificate | Boolean | 否 | SQLServer | 是否信任服务器证书。 | 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"
}
}
返回参数
| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
| success | Bool | 接口调用是否成功。返回值:true、false。 | true |
| requestId | String | 请求 ID。 | Mi6y0FCN-BHEEaHAnCFFp9DFdAAk0OUZ |
| data | Array | 创建的数据源详情,包含数据源 ID(datasourceId)信息。 | { "datasourceId": "ds-d92r4i7z1a90" } |
调用成功示例
{
"success": true,
"requestId": "Uf0f0KQB-BHEEjCWnCGHo9FSdCBi1GPC",
"data": {
"datasourceId": "ds-d92r4i7z1a90"
}
}