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