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