はじめに
2019年に最も注目された言語といえば…
そうだね、golangだね!(私の中では)
ってことで今更感はあるが、golang触ってみました!
やったこと
-
- golangの勉強がてら、TODOアプリを作ってみた
gin, gormを使ってRESTfulなWeb APIを作成
RESTful APIを作成するにあたり
-
- CRUDを意識して!
- バージョン管理に対応した仕様で!
以上を踏まえてデザインした。
CRUDHTTPメソッドエンドポイントCreate(新規タスクの登録)POST~/api/v1/tasksRead(全タスクの参照) GET~/api/v1/tasksRead(一部タスクの参照)GET~/api/v1/tasks/:idUpdate(一部タスクの更新)PUT~/api/v1/tasks/:idDelete(一部タスクの削除)DELETE~/api/v1/tasks/:id
構成考えてみた
Gin と GORM で作るオレオレ構成 APIを参考にさせていただきました。
.
├── controller
│ └── task_controller.go
├── db
│ └── db.go
├── entity
│ └── task.go
├── router
│ └── router.go
└── main.go
パッケージ名処理内容controllerリクエストに対する処理、レスポンスの決定dbDB接続等の処理を実装entityエンティティを定義routerルーティングの設定
エンティティ考えてみた
ToDoリストでは、タスクについて以下のことを管理するようにした。
– タスク名(やらないといけない事)
– 期限
– 重要度(重要か重要でないか)
– 完了状態(完了の有無)
作ってみた
ここに関しては他に多数記事が存在するので割愛
github
所感
ginが使いやすかった件
ただただ使いやすかったです。本当にありがとうございます。
gormの自動マイグレーション機能が便利だった件
gormの自動マイグレーションは、未作成のテーブルやカラムを自動で追加してくれる機能
ちょっとした開発ならSQL書かなくていいし楽!
SQLBoilerという選択肢も?
gormの代わりに、SQLBoilerというライブラリを使う選択肢もあるみたい。
機会があったら触ってみたいですね…
今後
API作成したので、次はクライアント側作ってみます。