You need to enable JavaScript to run this app.
文档中心
AI 原生 BaaS 平台 Supabase 版

AI 原生 BaaS 平台 Supabase 版

复制全文
下载 pdf
SDK 参考
使用 Go SDK
复制全文
下载 pdf
使用 Go SDK
本文介绍使用 AI 原生 BaaS 平台 Supabase 版 Go SDK 的相关信息。​
下载与安装​
前提条件​
需要使用 Go 1.5 或以上版本,推荐使用 Go 1.12 或以上版本。​
说明​
您可以执行 go version 命令检查当前 Go 版本信息。​
SDK 下载地址​
AI 原生数据库管理平台 Go SDK 源码地址,请参见 SDK 列表。​
安装 SDK​
在目标 Go 项目下,执行以下命令安装 Go SDK。​
​
go get github.com/volcengine/volcengine-go-sdk/volcengine/credentials​
go get github.com/volcengine/volcengine-go-sdk/volcengine/volcengineutil​
​
初始化客户端​
AI 原生数据库管理平台 Go SDK 支持通过 Session 的方式初始化客户端。通过 Session 方式创建的 Supabase 客户端,底层会实现 HTTP/HTTPS 资源(连接或请求)的复用。当需要初始化多个客户端进行操作时,通过 Session 方式创建可以提升客户端的性能。​
前提条件​
  • 已获取账号的 Access Key ID(简称 AK)和 Secret Access Key(简称 SK)信息。具体操作,请参见 Access Key 管理。​
  • 已获取 AI 原生数据库管理平台支持的 Region 和对应的 Host,请参见服务地址。​
  • 已下载并安装 AI 原生数据库管理平台 Go SDK。​
初始化客户端​
使用以下代码初始化客户端。​
​
package aidap​
​
import (​
"fmt"​
"net/http"​
"sync"​
"time"​
​
"github.com/volcengine/volcengine-go-sdk/service/aidap"​
"github.com/volcengine/volcengine-go-sdk/volcengine"​
"github.com/volcengine/volcengine-go-sdk/volcengine/credentials"​
"github.com/volcengine/volcengine-go-sdk/volcengine/session"​
)​
​
var (​
initOne sync.Once​
initErr error​
aidapClient *aidap.AIDAP​
)​
​
func init() {​
initOne.Do(func() {​
var (​
ak string​
sk string​
region string​
endpoint string​
config *volcengine.Config​
sess *session.Session​
)​
ak = "Your AK"​
sk = "Your SK"​
region = "Your Region" // 例如 cn-beijing​
endpoint = "Your Endpoint" // AI原生BaaS平台Supabase版服务地址​
config = volcengine.NewConfig().WithCredentials(credentials.NewStaticCredentials(ak, sk, "")).​
WithRegion(region).WithEndpoint(endpoint)​
sess, initErr = session.NewSession(config)​
if initErr != nil {​
fmt.Printf("failed init aidap client, err=%s", initErr.Error())​
panic(initErr)​
}​
aidapClient = aidap.New(sess)​
})​
}​
​
func GetAidapClient() *aidap.AIDAP {​
return aidapClient​
}​
​
代码示例​
请求超时时间设置​
使用 Go SDK 调用接口时,默认无超时时间设置。 您可以在初始化客户端时,通过 WithHTTPClient(&http.Client{Timeout: <超时时间> * time.Second}) 来指定客户端的请求超时时间,若未在该时间内完成,请求会立即终止并报超时错误。例如,您可以通过以下代码将客户端的请求超时时间设置为 10 秒。​
​
config = volcengine.NewConfig().​
WithCredentials(credentials.NewStaticCredentials(ak, sk, "")).​
WithRegion(region).​
WithHTTPClient(&http.Client{Timeout: 10 * time.Second})​
​
示例​
创建 Workspace​
以下 SDK 代码中所使用的参数的定义、取值范围等信息,请参见 CreateWorkspace。​
​
package aidap​
​
import (​
"encoding/json"​
"fmt"​
​
"github.com/volcengine/volcengine-go-sdk/service/aidap"​
"github.com/volcengine/volcengine-go-sdk/volcengine"​
)​
​
// CreateWorkspace 示例:创建一个新的Workspace。​
func CreateWorkspace() (*string, error) {​
client := GetAidapClient()​
input := &aidap.CreateWorkspaceInput{​
WorkspaceName: volcengine.String("test-workspace"),​
EngineVersion: volcengine.String(aidap.EnumOfEngineVersionForCreateWorkspaceInputSupabase124),​
}​
output, err := client.CreateWorkspace(input)​
if err != nil {​
fmt.Printf("CreateWorkspace failed with err: %v", err)​
return nil, err​
}​
result, err := json.Marshal(output)​
if err != nil {​
fmt.Printf("Marshal failed with err: %v", err)​
return nil, err​
}​
fmt.Printf("CreateWorkspace success, detail=%s", result)​
return output.WorkspaceId, nil​
}​
​
本示例中的参数说明如下表所示。​
​
参数​
说明​
取值​
WorkspaceName​
Workspace 名称。Workspace 名称应满足以下规则:​
  • 只能包含中文、字母(a~z 和 A~Z)、数字、中划线(-)和下划线(_)。​
  • 只能以中文或字母(a~z 和 A~Z)开头。​
  • 长度需要在 2~64 个字符之间。​
说明​
如不设定,则采用自动生成的 Workspace ID 作为Workspace 名称。​
test-worksapce​
EngineVersion​
引擎版本。取值:​
  • PostgreSQL_17: PostgreSQL 17。​
  • veDB_MySQL_8_0:veDB MySQL 8.0。​
  • Supabase_1_24:Supabase 1.24。​
PostgreSQL_17​
​
​
查询 Workspace 详情​
以下 SDK 代码中所使用的参数的定义、取值范围等信息,请参见 DescribeWorkspaceDetail。​
​
package aidap​
​
import (​
"encoding/json"​
"fmt"​
​
"github.com/volcengine/volcengine-go-sdk/service/aidap"​
"github.com/volcengine/volcengine-go-sdk/volcengine"​
)​
​
// DescribeWorkspaceDetail 示例:获取Workspace的详细信息。​
func DescribeWorkspaceDetail() error {​
client := GetAidapClient()​
workspaceId := "test-workspace-id"​
input := &aidap.DescribeWorkspaceDetailInput{​
WorkspaceId: volcengine.String(workspaceId),​
}​
output, err := client.DescribeWorkspaceDetail(input)​
if err != nil {​
fmt.Printf("DescribeWorkspaceDetail failed with err: %v", err)​
return err​
}​
result, err := json.Marshal(output)​
if err != nil {​
fmt.Printf("Marshal failed with err: %v", err)​
return err​
}​
fmt.Printf("DescribeWorkspaceDetail success, detail=%s", result)​
return nil​
}​
​
本示例中的参数说明如下表所示。​
​
参数​
说明​
取值​
WorkspaceId​
Workspace 的 ID。​
test-workspace-id​
​
最近更新时间:2026.06.23 15:59:58
这个页面对您有帮助吗?
有用
有用
无用
无用