Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yuki-tu/todo-go
GoのRESTAPI
https://github.com/yuki-tu/todo-go
adminer gin go golang mysql
Last synced: 23 days ago
JSON representation
GoのRESTAPI
- Host: GitHub
- URL: https://github.com/yuki-tu/todo-go
- Owner: Yuki-TU
- License: mit
- Created: 2022-08-24T15:20:05.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-12T16:24:26.000Z (about 2 years ago)
- Last Synced: 2024-06-20T16:46:57.352Z (5 months ago)
- Topics: adminer, gin, go, golang, mysql
- Language: Go
- Homepage:
- Size: 119 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# todo-go
todo appのREST API利用ライブラリ
- [gin](https://pkg.go.dev/github.com/gin-gonic/gin)
- [golang-migration](https://github.com/golang-migrate/migrate)
- [swagger-ui](https://swagger.io/tools/swagger-ui/)
- [sql](https://pkg.go.dev/database/sql)# 環境構築
```sh
$ git clone https://github.com/Yuki-TU/todo-go
$ cd ./todo-go
$ cp .env.example .env
$ docker compose up -d --build
$ docker compose exec app sh
# 以下コンテナ内
$ go run main.go
```
API
[http://localhost:8081](http://localhost:8081)swagger-ui
[http://localhost](http://localhost)またMakefileも用意しているため、そちらでも実行可能
```sh
$ make up # docker compose up -d
$ make build DOCKER_TAG=v1.0.0 # docker build --tag yuki-tu/todo-go:v1.0.0 --target deploy ./
```詳しくは、`$ make help`または`Makefile`を参考
# DB
テスト環境での情報は以下
|項目|設定値|
|---|---|
|データベース種類|MySQL|
|サーバ|db|
|ユーザ|test|
|パスワード|test|
|データベース|todo|# migration
```sh
# 環境変数定義(環境変数が指定されていないエラーが出たら)
$ export MYSQL_URI='mysql://test:test@tcp(db:3306)/todo?charset=utf8&parseTime=true&loc=Asia%2FTokyo'
# テンプレート作成
$ migrate create -ext sql -dir db/migrations -seq (table-name)
# マイグレーション適用
$ migrate -database ${MYSQL_URI} -path db/migrations up
# リバースマイグレーション
$ migrate -database ${MYSQL_URI} -path db/migrations down
```