📑
golangのGojiraを利用してみた
はじめに
自分はgo初心者で、ここ最近goの勉強を始めました
そこで、goにginを入れて開発する上でディレクトリ構成がフリーダムになりかねなかったので、
Clean Architectureを調べてたところ、gojiraというCLIがあることを知ったので、利用する上でのメモです
githubは、こちら
特徴(google先生の翻訳)
環境
フォルダ構成
project(ディレクトリ)
├ docker-compose.yml
├ react(ディレクトリ)
└ api(ディレクトリ) ← 今回はここだけ
└ dockerfile
dockerfile
FROM golang:1.16
RUN apt-get update && apt-get install -y build-essential make
WORKDIR /go/src/app
COPY . /go/src/app/
docker-compose.yml(抜粋)
services:
api:
container_name: api
build:
context: ./api
ports:
- 8080:8080
volumes:
- ./api:/go/src/app
tty: true
コマンド実行
docker compose build api
docker compose run --rm api sh
インストール
go get github.com/saturnavt/gojira
go mod init api
go mod tidy
gojiraのcli一覧
root@0b8786d04a62:/go/src/app# gojira
NAME:
_____ _ _
/ ____| (_|_)
| | __ ___ _ _ _ __ __ _
| | |_ |/ _ \| | | '__/ _ |
| |__| | (_) | | | | | (_| |
\_____|\___/| |_|_| \__,_|
_/ |
|__/ - Alejandro Castillo
USAGE:
gojira [global options] command [command options] [arguments...]
DESCRIPTION:
Gojira is a cli tool to create clean architecture app for you including gin-gonic, bcrypt and jwt.
COMMANDS:
new (gojira new --folder yourProjectName) This will generate a new project with example files
module (gojira module --generate-crud yourModuleName) This will create a new module with crud flow
module-simple (gojira module-simple --generate yourModuleName) This will create a new module with simple example
db (gojira db --client yourSelection) This will To create a new db service client, yourSelection can be (mysql, gorm or prisma)
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
プロジェクト構築
コマンドを実行
gojira new --folder .
gojira db --client gorm # DBクライアントはgormをチョイス
上記のコマンドで作られたファイルを見ると
インポート部分のパスが異なるので、全て修正
package main
import (
db "github.com/app/infraestructure/databases"
-------------
router "github.com/./routing"
------------
)
swaggerのインストール
go get github.com/swaggo/swag@latest
go mod tidy
swag init
実行
go run main.go
以下のURLでswaggerが見れれば成功となります
Discussion