クイックスタート
Complete guide to installing Goa and building your first service - from setup to running a working HTTP endpoint.
Goa は Go でマイクロサービスを構築するためのデザインファーストのフレームワークです。Goa の強力な DSL を使って API を定義し、Goa が定型コード、ドキュメント、クライアントライブラリを生成します。
Goa は API 設計と実装を分離する 3 フェーズのワークフローを採用しており、一貫性を保ちながら定型コードを削減します。
設計フェーズでは、Go ファイル上の Goa DSL(通常は design/ ディレクトリ)で API を定義します。
あなたが作るもの: API 仕様を Go コードとして表現した design/*.go ファイルです。
goa gen を実行すると、定型コードをすべて自動生成します。
goa gen myservice/design
Goa が作るもの(gen/ ディレクトリ配下):
重要: gen/ 配下のファイルは編集しないでください。goa gen を実行するたびに再生成されます。
生成されたサービスインターフェイスを実装して、ビジネスロジックを書きます。
// service.go - あなたが書く
type helloService struct{}
func (s *helloService) SayHello(ctx context.Context, p *hello.SayHelloPayload) (string, error) {
return fmt.Sprintf("Hello, %s!", p.Name), nil
}
あなたが作るもの: 実際のビジネスロジックを含むサービス実装ファイルです。
| あなたが書く | Goa が生成する |
|---|---|
design/*.go — API 定義 | gen/ — すべてのトランスポートコード |
service.go — ビジネスロジック | OpenAPI 仕様 |
cmd/*/main.go — サーバー起動 | Protocol Buffer 定義 |
| テストとカスタムミドルウェア | リクエストバリデーション |
| ガイド | 説明 | 〜トークン |
|---|---|---|
| クイックスタート | Goa をインストールして、最初のサービスを作成します。 | ~1,100 |
| DSL リファレンス | Goa デザイン言語の完全なリファレンスです。 | ~2,900 |
| コード生成 | Goa のコード生成プロセスを理解します。 | ~2,100 |
| HTTP ガイド | HTTP トランスポート機能、ルーティング、パターンを扱います。 | ~1,700 |
| gRPC ガイド | gRPC トランスポート機能とストリーミングを扱います。 | ~1,800 |
| エラーハンドリング | エラーの定義とハンドリングを扱います。 | ~1,800 |
| インターセプター | インターセプターとミドルウェアのパターンを扱います。 | ~1,400 |
| プロダクション | 観測可能性、セキュリティ、デプロイメントを扱います。 | ~1,300 |
セクション合計: ~14,500 トークン
package design
import . "goa.design/goa/v3/dsl"
var _ = Service("hello", func() {
Method("sayHello", func() {
Payload(String, "Name to greet")
Result(String, "Greeting message")
HTTP(func() {
GET("/hello/{name}")
})
})
})
生成して実行します:
goa gen hello/design
goa example hello/design
go run ./cmd/hello
クイックスタート ガイドで Goa をインストールし、最初のサービスを数分で構築しましょう。
包括的な DSL カバーについては DSL リファレンス を参照してください。