项目中开发需要,需要通过前端地址来访问后端的服务,本人封装了一个service 工具类,具体如下 有感兴趣的码有可以使用下。
我开发实际项目中使用场景是,针对每一个web 请求,需要创建一个controller接口,接参数,处理逻辑,调用service,调用model,然后返回数据。我设计的初衷是省去了controller层,只要关注service 层逻辑,大大提高了代码效率。
package main
import (
"fmt"
"github.com/codewangz/goutils/service"
)
type testService struct {
}
func (s *testService) A(params service.Params) service.Result {
str := params.GetString("str") // 通过getString 获取参数,返回值为string 类型,当然还有其他获取参数。
fmt.Println(str)
return str
}
func init() {
service.RegisterService(new(testService))
}
func main() {
p := service.Params{}
p["str"] = "hello world"
//test.a 表示调用testService的A方法,A必须大写,否则访问不到。
//p 是参数 传了str 为 hello world 字符串。
result := service.Call("test.a", p)
fmt.Println(result)
}
输出结果
hello world
hello world