You need to enable JavaScript to run this app.
导航
数据面API调用流程
最近更新时间:2025.09.30 16:07:16首次发布时间:2025.08.15 11:30:50
复制全文
我的收藏
有用
有用
无用
无用

概述

该文档是对数据面API请求过程的概述,在使用 API 接口前,需先做好以下准备工作。
同时介绍响应体的公共参数,供用户在调用时参考。

调用流程

1. 账号注册与服务开通

通过 注册账号及开通服务 页面操作,完成注册账号及开通服务。

2. AK/SK 密钥获取

在调用火山引擎向量数据库 VikingDB 的各个能力之前,确保您已生成访问密钥 Access Key。
Access Key 包括 Access Key ID(简称为 AK) 和 Access Key Secret(简称为 SK)。其中,AK用于标识用户,SK用于验证用户的密钥,请您妥善保管。
AK/SK 密钥获取方式如下,更多详情请参考 Access Key(密钥)管理

  1. 单击右上角账号名下拉框中的【密钥管理】进入对应页面。
  2. 单击【新建密钥】按钮,可获取 AK/SK,可以此为凭证调用上述已接入应用的接口。

Image

注意

安全起见,建议新建子账户,并使用子账户的 AK/SK。

3. 签名生成

签名是什么?

签名是 API 请求中的一串经过计算得到的编码字符串,它用于身份认证和防止数据被篡改。

签名获取了就能一直用吗?

签名不像ak、sk,每个请求的签名都是独立且临时的,一个签名只能用于一次特定的请求,不能长期固定使用。
在下面调用示例中prepare_request即为鉴权函数。

4.调用示例(以Python为例)

调用在数据集中点查的接口示例
说明:运行该示例请填入ak sk、host、action和body,其中action和body见接口文档。

"""
pip3 install volcengine
"""
import os

from volcengine.auth.SignerV4 import SignerV4
from volcengine.Credentials import Credentials
from volcengine.base.Request import Request
import requests, json

class ClientForDataApi:
    def __init__(self, ak, sk, host):
        self.ak = ak
        self.sk = sk
        self.host = host

    def prepare_request(self, method, path, params=None, data=None):
        r = Request()
        r.set_shema("https")
        r.set_method(method)
        r.set_connection_timeout(10)
        r.set_socket_timeout(10)
        mheaders = {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'Host': self.host,
        }
        r.set_headers(mheaders)
        if params:
            r.set_query(params)
        r.set_host(self.host)
        r.set_path(path)
        if data is not None:
            r.set_body(json.dumps(data))
        credentials = Credentials(self.ak, self.sk, 'vikingdb', 'cn-beijing')
        SignerV4.sign(r, credentials)
        return r
        
    def do_req(self, req_method, req_path, req_params, req_body):
        req = self.prepare_request(method=req_method, path=req_path, params=req_params, data=req_body)
        return requests.request(method=req.method, url="http://{}{}".format(self.host, req.path),
                                  headers=req.headers, data=req.body, timeout=10000)

if __name__ == '__main__':
    client = ClientForDataApi(
        ak = "*",#替换为您的ak
        sk = "*",#替换为您的sk
        host = "api-vikingdb.vikingdb.cn-beijing.volces.com",#替换为您所在的域名
    )
    req_method = "POST"
    req_params = None
    req_path = "/api/vikingdb/data/fetch_in_collection"#替换为当前操作url
    req_body = {
        "collection_name": "my_collection", #替换为当前参数
        'ids': [1, 2, -1]
    }
    result = client.do_req(req_method=req_method, req_path=req_path, req_params=req_params, req_body=req_body)
    print("req http status code: ", result.status_code)
    print("req result: \n", result.text)

支持的域名和Region

详见:地域和访问域名(Endpoint)

Region名称

域名

cn-beijing

api-vikingdb.vikingdb.cn-beijing.volces.com

cn-shanghai

api-vikingdb.vikingdb.cn-shanghai.volces.com

cn-guangzhou

api-vikingdb.vikingdb.cn-guangzhou.volces.com

响应体公共参数介绍

参数名

类型

说明

request_id

string

请求id

code

string

操作状态码。成功则为"Success",否则为错误码短语。遵循"Xxx"或"Xxx.Yyy"格式。

message

string

操作执行信息。成功则为"The API call was executed successfully.",否则为错误信息。遵循完整的英文语句表达。

result

map

如果操作没有结果或不需要结果,则返回的 result = null