Go-Kit实现莫斯电码转换

Go-Kit实现莫斯电码转换

go-kit

本文通过一个简单的服务器案例,说明go-kit微服务工具集的基本使用方式。

我们的需求是实现一个可以将英文和莫斯电码相互转换的api服务,举例,我们希望通过建立一个api服务,将 ”Hello World“ 翻译为 ”… . .-… .-… — .-- — .-. .-… -…“。

项目地址:https://github.com/xuezhaojun/gomorse_gui

Overview

Go-kit架构具有三个抽象分层,分别是:

  • 传输层
  • 服务层
  • EndPoint层

然后概览一下项目结构:

--gomorse_gui
	--pkg
		-- object_model
			-- interfaces.go
		-- morse
			-- morse_translater.go
	--svc
		-- morse_service
			-- endpoint.go
			-- transport.go
			-- main.go
			

主要go文件有四个:

  • interfaces.go
  • morse_translater.go
  • main.go
  • transport.go

接下来,我们将分别介绍三个层以及其对应的代码

服务层

业务逻辑实现在服务层里,而在服务层的代码只需要关心业务逻辑即可。

pkg/object_model目录下的interfaces.go,主要作用以接口的形式,定义业务目标:

type Morse interface {
   
	TranslateEnglishToMorseCode(request Request) (Response, error)
	TranslateMorseCodeToEnglish(request Request) (Response, error)
}

简明来说,我们的这个需要实现两个目标:

  • 将English翻译为MorseCode
  • 将MorseCode翻译为English

pkg/morse目录下的morse_translater.go, 则是该接口的具体实现:

type MorseTranslater struct{
   }

func NewMorseTranlater() *MorseTranslater {
   
	return &MorseTranslater{
   }
}

func (m *MorseTranslater) TranslateEnglishToMorseCode(request object_model.Request) (response object_model.Response, err error) {
   
	if err := gomorse.Valid(request.Text); err != 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值