はじめに

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作成したので、次はクライアント側作ってみます。

bannerAds