Go 教程:Go Kit 微服务实战

2020-05-21 00:00:00 微服 文件 服务 让我们 映射
转自 Go 开发者社区 learnku.com/go/t/38417

什么是 Go kit?

来自 Go kit README.md:

Go kit 是用于在 Go 中构建微服务的编程工具包。我们解决了分布式系统和应用程序体系结构中的常见问题,因此您可以专注于交付业务价值。
[...]
Go是一种很棒的通用语言,但是微服务需要一定量的专业支持。 RPC安全性,系统可观察性,基础结构集成甚至程序设计。Go kit 填补了标准库留下的空白,并使 Go 成为在任何组织中编写微服务的语言。

我们会做什么?

我们将创建一个非常基本的微服务,该微服务将返回并验证日期。目标是了解 Go kit 的工作原理,仅此而已。不用 Go kit 就能轻松复制所有逻辑,但我们是来这里学习 Go kit 的,所以...

希望这能对你的下一个项目有一个良好的开端!

我们的微服务将有一些端点。

  • /status 处的一个 GET 端点,该端点将返回一个简单的回复,以确认微服务已启动并正在运行
  • /get 处的一个 GET 端点,它将返回今天的日期
  • /validate 处的一个 POST 端点,它将收到一个 dd/mm/yyyy 的日期字符串 (美国的日期格式) 并根据一个简单的正则表达式对其进行验证…

源代码:github.com/napolux/go-k

先决条件

您应该已经在计算机上安装并运行了 Golang。我发现在我的 Macbook 上 官方下载包 (我在配置环境变量时遇到一些问题) 安装的 Golang 比 Homebrew 安装 运行得更好。

另外,你应该了解 Go 语言。例如,我不会解释什么是 struct

napodate 微服务

好的,让我们在我们的 $GOPATH 文件夹中创建一个名为 napodate 的新文件夹。它也将会是我们的包名。

service.go 文件放在此处。让我们在文件顶部添加服务接口。

package napodate

import "context"

// 服务为您的应用程序提供了一些「日期功能」
type Service interface {
    Status(ctx context.Context) (string, error)
    Get(ctx context.Context) (string, error)
    Validate(ctx context.Context, date string) (bool, error)
}

相关文章