16
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#はじめに
2019年に最も注目された言語といえば…
そうだね、golangだね!(私の中では)

ってことで今更感はあるが、golang触ってみました!

やったこと

  • golangの勉強がてら、TODOアプリを作ってみた
  • gin, gormを使ってRESTfulなWeb APIを作成

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

16
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?