LeanCloud Go SDK 首个版本发布

Go 是 Google 发布的一个高性能的静态类型语言,语法简洁对并发编程有着原生的支持。在我们的用户中也有很多开发者同时在使用 Go 来构建他们的后端应用,因此我们为 Go 开发了 LeanCloud SDK,并支持了在云引擎上构建和部署 Go 应用,相信能为使用 Go 的 LeanCloud 开发者提供便利。

Go SDK 可以作为服务器端部署在云引擎或自己的服务器,也可以作为客户端被分发给用户使用。目前的 LeanCloud Go SDK 0.1 版本支持了数据存储的绝大部分功能,包括用户的管理、对象的存储查询以及文件存储,并且支持将云函数和 Hook 部署到云引擎。

数据存储

Go SDK 可以与自定义的类型进行交互(需要嵌入 leancloud.Object),我们也建议开发者定义自己的数据类型:

type Todo struct {
  leancloud.Object
  Title      string         `json:"title"`
  Content    string         `json:"content"`
  Tags       []string       `json:"tags"`
  Attachment leancloud.File `json:"attachment"`
}

保存一个对象到云端:

// 从环境变量读取信息并创建 Client(在云引擎或 lean up 本地调试时会注入这些环境变量)
client := leancloud.NewEnvClient()

// 创建一个新的 Todo 对象
todo := Todo{
  Title: "Team Meeting",
  Content: "Discussion of development",
  Tags: []string{"Work"},
}

// 保存到云端
ref, err := client.Class("Todo").Create(&todo)

// 检查错误并打印 objectID
if err != nil {
  panic(err)
}

fmt.Println(ref.ID)

登录用户并以用户的权限(sessionToken)进行查询:

user, err := client.Users.LogIn("leancloud", "password")

if err != nil {
  panic(err)
}


results := make([]Todo, 0)
query := client.Class("Todo").NewQuery().In("tags", []string{"Work"})

// 查询云端数据并写入自定义类型中
if err := query.Find(&results, leancloud.UseUser(user)); err != nil {
  panic(err)
}

for _, todo := range results {
  fmt.Println(todo.Title, todo.Content)
}

从本地上传文件:

file, err := client.Files.UploadFromFile("./local-file")

if err != nil {
  panic(err)
}

fmt.Println(file.URL)

关于 Go SDK 的具体接入方法请参考 Go SDK 安装指南 [1],更多的 API 可以查看 API 文档 [2],我们目前还在编写针对 Go 的数据存储指南和云引擎使用指南,一段时间之后就会上线。

Go SDK 的代码可以在 GitHub [3] 找到,如果在使用中遇到问题,可以在用户社区 [4] 中与我们进行沟通,商用版用户可以提交 工单 [5] 来获得支持。

云引擎

你可以从我们的示例项目 golang-getting-started [6] 开始编写你的第一个 Go 云引擎程序。

定义云函数:

leancloud.Define("hello", func(req *leancloud.FunctionRequest) (interface{}, error) {
  params, ok := req.Params.(map[string]string)

  if !ok {
    return nil, errors.New("invalid params")
  }

  return map[string]string{
    "hello": params["name"],
  }, nil
})

Hook:

leancloud.BeforeSave("Review", func(req *leancloud.ClassHookRequest) (interface{}, error) {
  if len(req.Object.String("comment")) > 140 {
    return req.Object, errors.New("comment too long")
  }

  return req.Object, nil
})

在编写完云函数和 Hook 之后,你可以使用命令行工具 [7] 将项目部署到云引擎:

$ lean login
$ lean switch
$ lean deploy

除了作为云函数的服务端,Go SDK 也可以作为客户端调用云函数:

result, err := leancloud.Run("hello", &map[string]string{
  "name": "leancloud",
}, leancloud.WithRemote())

if err != nil {
  panic(err)
}

fmt.Println(result.(map[string]interface{}))

更多服务文档请点击左下角「阅读原文」

[1] Go SDK 安装指南:https://url.leanapp.cn/3YOCHH5

[2] API 文档:https://url.leanapp.cn/yTpJooZ

[3] GitHub:https://url.leanapp.cn/rlwjXKg

[4] 用户社区:https://url.leanapp.cn/4lWWTWv

[5] 工单:https://url.leanapp.cn/WukqJMq

[6] golang-getting-started:https://url.leanapp.cn/jdCxosh

[7] 命令行工具:https://url.leanapp.cn/dJfgIaY

end

LeanCloud,领先的 BaaS 提供商,为移动开发提供强有力的后端支持。更多内容请关注「LeanCloud 通讯」

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值