跳转到主要内容

文档 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}

API 文档参考