上云无忧 > 文档中心 > 百度智能云云数据库 FusionDB API调用说明
云数据库 FusionDB
百度智能云云数据库 FusionDB API调用说明

文档简介:
API认证机制: 所有API的安全认证一律采用Access Key与请求签名机制。 Access Key由Access Key ID和Secret Access Key组成,均为字符串。 对于每个HTTP请求,使用下面所描述的算法生成一个认证字符串。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

通用说明

API认证机制

所有API的安全认证一律采用Access Key与请求签名机制。 Access Key由Access Key ID和Secret Access Key组成,均为字符串。 对于每个HTTP请求,使用下面所描述的算法生成一个认证字符串。提交认证字符串放在Authorization头域里。服务端根据生成算法验证认证字符串的正确性。 认证字符串的格式为bce-auth-v{version}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}。

  • version是正整数。
  • timestamp是生成签名时的UTC时间。
  • expirationPeriodInSeconds表示签名有效期限。
  • signedHeaders是签名算法中涉及到的头域列表。头域名之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。(本API签名仅使用host和x-bce-date两个header)
  • signature是256位签名的十六进制表示,由64个小写字母组成。

当百度智能云接收到用户的请求后,系统将使用相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

鉴权认证机制的详细内容请参见鉴权认证。

幂等性

当调用某些接口时如果遇到了请求超时或服务器内部错误,用户可能会尝试重发请求,这时用户通过clientToken参数避免创建出比预期要多的资源,即保证请求的幂等性。

幂等性基于clientToken,clientToken是一个长度不超过64位的ASCII字符串,通常放在query string里,如http://bcc.bj.baidubce.com/v1/instance?clientToken=be31b98c-5e41-4838-9830-9be700de5a20。

如果用户使用同一个clientToken值调用创建接口,则服务端会返回相同的请求结果。因此用户在遇到错误进行重试的时候,可以通过提供相同的clientToken值,来确保只创建一个资源;如果用户提供了一个已经使用过的clientToken,但其他请求参数(包括queryString和requestBody)不同甚至url Path不同,则会返回IdempotentParameterMismatch的错误代码。

clientToken的有效期为24小时,以服务端最后一次收到该clientToken为准。也就是说,如果客户端不断发送同一个clientToken,那么该clientToken将长期有效。

日期与时间规范

日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用UTC时间,遵循ISO 8601,并做以下约束:

  1. 表示日期一律采用YYYY-MM-DD方式,例如2014-06-01表示2014年6月1日
  2. 表示时间一律采用hh:mm:ss方式,并在最后加一个大写字母Z表示UTC时间。例如23:00:10Z表示UTC时间23点0分10秒。
  3. 凡涉及日期和时间合并表示时,在两者中间加大写字母T,例如2014-06-01T23:00:10Z表示UTC时间2014年6月1日23点0分10秒。

公共参数

公共请求参数

通用请求参数是指每个接口都需要使用到的请求参数。

参数名 参数类型 是否必须 参数描述
Authorization String Yes 认证Access Key
If-Match String No -
If-None-Match String No -
x-bce-request-id String No 1)所有请求都应该唯一地对应一个ID,用于标识该请求。
2)requestId可用于问题定位、性能分析等等多个场景。所有的日志都应该带有requestId以便后续分析。
3)requestId使用UUID version 4,暂时由各服务自行生成,后续考虑统一由BFE生成
x-bce-date String No 请求时间,格式参考 时间与日期

公共返回参数

每次接口调用请求,无论成功失败,都包含x-bce-request-id HTTP头,调用成功系统同时会返回业务数据。对单一资源的查询请求会返回HTTP ETag头。

示例:

HTTP/1.1 200 OK
x-bce-request-id: 7869616F-7A68-6977-656E-406261696475
ETag: xxx-xxx-xx
Content-Type: application/json
{
"cluster" : {
        "clusterId": "xxxjxjkp1fimpb",
        "clusterName": "xxxtest",
        "engineVersion": "5.x",
        "endpoint": {
             "port": 6600,
             "address": "xxx.xxxjxjkp1fimpb.bce.baidu.com"
        },
        "region": "bj",
        "instanceClass": "db1.large",
        "allocatedMemoryInMB": 32768,
        "allocatedStorageInGB": 320,
        "usedStorageInMB": 0,
        "instanceStatus": "available",
        "lockMode": "unlock",
        "eipStatus": "closed",
        "publiclyAccessible": false,
        "instanceCreateTime": "2017-05-15 07:05:56",
        "sliceAmount": 1,
        "instanceAmount": 2,
        "subInstanceAmount": 4,
        "azone": "default",
        "vpcId": "98c700ed-fed4-4d4e-bdd0-a17f64ead477",
        "subnetId": {
            "zoneA" : "66051292-093c-49df-8648-c18742f0c392"
        },
        "sliceList": [
            {
                "sliceId": "slice946t28kt1k",
                "usedStorageInMB" : 10,
                "status" : "available",
                "instanceIds": [
                    {
                        "role": "master",
                        "instanceId": "5a63a4c5-5d7c-44ac-89bd-cded7ac2ec44",
                        "instanceShortId":"dr-asdf1",
                        "status" : "available",
                        "usedStorageInMB" : 10
                    },
                    {
                        "role": "standbymaster",
                        "instanceId": "a9419e43-f3c0-4527-a995-9a27478af22c",
                        "instanceShortId":"dr-asdf2",
                        "status" : "available",
                        "usedStorageInMB" : 10
                    },
                    {
                        "role": "slave",
                        "instanceId": "a9419e43-f3c0-4527-a995-9a27478af22c",
                        "instanceShortId":"dr-asdf2",
                        "status" : "available",
                        "usedStorageInMB" : 10
                    }
                ]
            }
        ]
    }
}

返回结果

调用 API 服务后返回数据采用统一格式,返回的 HTTP 状态码为 2xx,代表调用成功;

返回 4xx 或 5xx 的 HTTP 状态码代表调用失败;

调用成功返回的数据格式为 JSON。

调用成功

调用成功返回结果中包含具体的业务数据,示例如下:

{
    "instance": {
    }
}

调用失败

调用接口出错后,将不会返回结果数据。调用方可根据错误代码表来定位错误原因。 当调用出错时,HTTP 请求返回一个 4xx 或 5xx 的 HTTP 状态码,返回的消息体中是具体的错误代码及错误信息和requestId。

示例:

{
    "requestId": "7869616F-7A68-6977-656E-406261696475",
    "code": "invalidAction",
    "message": "The action or operation requested is invalid. Verify that the action is typed correctly."
}
相似文档
  • 如果您是初次调用百度智能云产品的API,可以观看API入门视频指南,快速掌握调用API的方法。 获取集群信息,包括集群ID、集群名、连接信息、计算节点数、计算节点套餐规格(内存、存储空间)、集群状态、锁定模式、创建时间、区域等信息。
  • 申请了云数据库 FusionDB 实例,默认账号的密码是什么? 默认账号是useradmin,初始密码不提供,需要到控制台->账号管理中修改密码后使用。 云数据库 FusionDB 可以通过SQL语句或客户端工具进行数据库账号的创建和删除吗? 用户可以使用useradmin账号通过SQL语句或客户端工具进行数据库账号的创建和删除以及给账号授权,管理控制台不提供该功能。
  • 如何通过工具或者代码访问数据库? 云数据库 FusionDB 支持多种方式进行实例的连接,主要包含如下方式: pgadmin是开源图形化管理工具,可以对监控数据、执行计划等图形化展示; psql是一种命令行的连接方式; C/C++ 程序可以使用ODBC接口; Java程序可以使用JDBC接口; Perl脚本语言可以使用DBI连接接口;
  • 索引建立有什么建议吗? 云数据库 FusionDB 中支持两类索引,分别是B树索引和位图索引。但在云数据库 FusionDB 中不推荐使用索引,原因有三个: 云数据库 FusionDB 一般需要访问大数据集,并且云数据库 FusionDB 可以通过分区、并行执行等方式提升查询效率。索引的作用不能有效发挥。
  • 百度消息服务 for RabbitMQ是百度智能云基于开源 RabbitMQ 推出的全托管的消息队列产品,提供完全兼容AMQP(Advanced Message Queuing Protocol 高级消息队列协议)协议、稳定可靠、高性能的消息队列服务。RabbitMQ采用全托管模式, 用户即开即用,免去部署、维护的工作量和费用,最大化提升业务效率。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部