Goa
Design-based
Install
goagen
goa跟goagen的关系是:goagen是工具,是goa项目的主要产物之一;如果不是修改goagen,基本不需要goa的源码,当然也可以将整体go get下来。
update 2016-01-25
goadesign/goa/goagengo getgo get github.com/goadesign/goaraphaelgoa packageGoa
安装代码依赖自动import工具:
go get golang.org/x/tools/cmd/goimports
注意问题
测试代码按照Github上进行就可,提一下官网没说的几个坑:
1.HTTP Request IDs
这个其实不算坑,是goa的功能之一,但在测试过程中如果没有具体设置验证中间件,便伊始会报错。测试过程中可以对此做屏蔽:
main.go
123
// service.Use(middleware.RequestID())// service.Use(middleware.LogRequest())// service.Use(middleware.Recover())
update:2016-01-19
middleware
go get github.com/raphael/goa-middleware
由于该包是以中间件形式与goa合用,因此不会直接被build。这样上段代码可以不用屏蔽,在API通信时会记录请求、测试和回复的日志信息。
2.未import package
goimportfmtstrconvgo build in
go build
这是最坑爹的,在goa官方没有解决方案,当然坑也不是goa挖的,还是那个goimport工具自个挖的。
google.golangcloudgcloud-golangmetadata
解决方案:
从Github中获取新包:
go get github.com/GoogleCloudPlatform/gcloud-golang
软链到本地GOPATH老地址:
ln -s /$GOPATH/src/github.com/GoogleCloudPlatform/gcloud-golang /$GOPATH/src/cloud