文档 1.5 版本已不再积极维护,你当前浏览的是一份归档快照。 最新文档请参阅 最新版本。
HugeGraph Go 客户端快速入门
基于 Go 语言的 HugeGraph Client SDK 工具。
软件架构
(软件架构说明)
安装教程
1go get github.com/apache/incubator-hugegraph-toolchain/hugegraph-client-go已实现 API
| API | 说明 |
|---|---|
| schema | 获取模型 schema |
| version | 获取版本信息 |
使用说明
1. 初始化客户端
1package main
2
3import (
4 "log"
5 "os"
6
7 "github.com/apache/incubator-hugegraph-toolchain/hugegraph-client-go"
8 "github.com/apache/incubator-hugegraph-toolchain/hugegraph-client-go/hgtransport"
9)
10
11func main() {
12 client, err := hugegraph.NewCommonClient(hugegraph.Config{
13 Host: "127.0.0.1",
14 Port: 8080,
15 Graph: "hugegraph",
16 Username: "", // 根据实际情况填写用户名
17 Password: "", // 根据实际情况填写密码
18 Logger: &hgtransport.ColorLogger{
19 Output: os.Stdout,
20 EnableRequestBody: true,
21 EnableResponseBody: true,
22 },
23 })
24
25 if err != nil {
26 log.Fatalf("Error creating the client: %s\n", err)
27 }
28
29 // 使用 client 进行操作...
30 _ = client // 避免 "imported and not used" 错误
31}2. 获取 HugeGraph 版本
使用 SDK 获取版本信息
1package main
2
3import (
4 "fmt"
5 "log"
6 "os"
7
8 "github.com/apache/incubator-hugegraph-toolchain/hugegraph-client-go"
9 "github.com/apache/incubator-hugegraph-toolchain/hugegraph-client-go/hgtransport"
10)
11
12// initClient 初始化并返回一个 HugeGraph 客户端实例
13func initClient() *hugegraph.CommonClient {
14 client, err := hugegraph.NewCommonClient(hugegraph.Config{
15 Host: "127.0.0.1",
16 Port: 8080,
17 Graph: "hugegraph",
18 Username: "",
19 Password: "",
20 Logger: &hgtransport.ColorLogger{
21 Output: os.Stdout,
22 EnableRequestBody: true,
23 EnableResponseBody: true,
24 },
25 })
26 if err != nil {
27 log.Fatalf("Error creating the client: %s\n", err)
28 }
29 return client
30}
31
32func getVersion() {
33 client := initClient()
34 // 假设 client 有一个 Version 方法返回版本信息和一个错误
35 // res, err := client.Version() // 实际调用
36 // 模拟返回,因为原始 README 中的 client.Version() 返回类型与此处使用不完全匹配
37 type VersionInfo struct {
38 Versions struct {
39 Version string `json:"version"`
40 Core string `json:"core"`
41 Gremlin string `json:"gremlin"`
42 API string `json:"api"`
43 } `json:"versions"`
44 // Body io.ReadCloser // 假设有 Body 用于关闭,根据实际 SDK 调整
45 }
46
47 // 模拟 API 调用和返回
48 res := &VersionInfo{
49 Versions: struct {
50 Version string `json:"version"`
51 Core string `json:"core"`
52 Gremlin string `json:"gremlin"`
53 API string `json:"api"`
54 }{
55 Version: "1.0.0", // 示例版本
56 Core: "1.0.0",
57 Gremlin: "3.x.x",
58 API: "v1",
59 },
60 }
61 // err := error(nil) // 假设没有错误
62
63 // if err != nil {
64 // log.Fatalf("Error getting the response: %s\n", err)
65 // }
66 // defer res.Body.Close() // 如果有 Body,需要关闭
67
68 fmt.Println(res.Versions)
69 fmt.Println(res.Versions.Version)
70}
71
72func main() {
73 getVersion()
74}返回值的结构
1package main
2
3// VersionResponse 定义了版本 API 返回的结构体
4type VersionResponse struct {
5 Versions struct {
6 Version string `json:"version"` // hugegraph version
7 Core string `json:"core"` // hugegraph core version
8 Gremlin string `json:"gremlin"` // hugegraph gremlin version
9 API string `json:"api"` // hugegraph api version
10 } `json:"versions"`
11}