✨
時間がない人向けのGolangを使ったGrpcサーバをクリーンアーキテクチャで実装をする
目的
- golang で Grpc サーバを作りたいけど、忙しくて時間がない人に向けです
コード
利用技術
- golang
- gorm
- goose
- gRPC
- Buf
- mySql
- docker
- air
手順
github から clone を作成する
git clone https://github.com/nagisa599/golang-grpc-template
module 名を変更する
この部分を適時、自分のプロジェクトのパスに変更する。vscode の一括変換を使うと便利。
github.com/nagisa599/golang-grpc-template
env ファイルを記述
.env.example を copy して.env ファイルに変更する。
DB_USER=root
DB_PASSWORD=
DB_HOST=host.docker.internal
DB_PORT=3306
DB_NAME=mysql_template
ENV=development
PORT=3001
image を作成
make bl-local
コンテナの立ち上げ
make up-local
確認
この画面がコンソールに確認されたら成功になります。
onnections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
mysql-db | 2024-09-21T15:05:00.622386Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.39' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
grahql-backend | running...
grahql-backend | 2024-09-22T00:05:04.670+0900 INFO zap/grpclogger.go:47 [core][Server #1]Server created {"system": "grpc", "grpc_log": true}
grahql-backend | 2024-09-22T00:05:04.671+0900 INFO zap/grpclogger.go:47 [core][Server #1 ListenSocket #2]ListenSocket created {"system": "grpc", "grpc_log": true}
発展
db の migration を作成
まとめ
log 表示、migration、ディレクトリー構成など、プロダクトレベルのリポジトリーになっているの、ぜひ動かして勉強してみてください
Discussion