[golang]fiber API7~Admin: Product API~

こんにちは、KOUKIです。

GolangのWebフレームワークであるfiberを使ってAPIを開発しています。

前回は、「is_ambassadorプロパティがtureのユーザーデータ」の取得APIを実装しました。

今回は、Product APIを追加します。

尚、この記事に出てくるソースコードは、Udemyの「React, NextJS and Golang: A Rapid Guide – Advanced」コースを参考にしています。解釈は私が勝手に付けているので、本物をみたい場合は受講をお勧めします!

前回

事前準備

フォルダ/ファイル作成

作るもの

Admin機能を作りたいと思います。エンドポイントは、次の通りです。

エンドポイント
  • GET/POST /api/admin/products
  • GET/PUT/DELETE /api/admin/products/{product_id}
  • GET /api/admin/users/{user_id}/links
  • GET /api/admin/orders
  • GET /api/admin/ambassadors

今回は、「/api/admin/products」「/api/admin/products/{product_id}」の処理を実装します。それぞれのエンドポイントで複数の形式(GET, POST, PUT, DELETE)を持つので、実装漏れに気をつけましょう。

Products API

Products APIは、商品の取り扱いに関するAPIになります。商品を追加、取得、更新、削除などの機能を追加していきましょう。

Product モデル

Productモデルを実装します。

マイグレーション

ProductモデルをGORMのマイグレーション対象にしましょう。

これで、dockerコンテナ起動時に、MySQL DBに対して、自動的にProductのスキーマーが作成されるようになります。

dockerコンテナを立ち上げましょう。

DBの中身を確認するとスキーマーができていることがわかります。

Products(全)ルートの追加

「/api/admin/products」のルートを追加します。

GET/POSTの2パターンあることに注意しましょう。

Products(全)コントローラーの追加

Productsコントローラーの処理を実装します。

検証

Productの追加と取得ができるようになったので、検証してみましょう。

Productの追加

  • URL: http://localhost:8000/api/admin/products
  • 形式: POST

Productの取得

  • URL: http://localhost:8000/api/admin/products
  • 形式: GET

OKですね。

Product(個)ルートの追加

「/api/admin/products/{product_id}」へのルートを追加します。

GET/PUT/DELETEの3パターンあることに注意しましょう。

Product(個)コントローラーの追加

Productのコントローラーを実装しましょう。

検証2

Product APIの検証をしましょう。

Productの取得

  • URL: http://localhost:8000/api/admin/products/1
  • 形式: GET

Productのアップデート

  • URL: http://localhost:8000/api/admin/products/1
  • 形式: PUT

Productの削除

  • URL: http://localhost:8000/api/admin/products/1
  • 形式: DELETE

削除されたか確認してみましょう。

  • URL: http://localhost:8000/api/admin/products
  • 形式: GET

OKですね。

次回

次回は、StructのEmbeddedとProductデータの作成を行います。

Go言語まとめ

ソースコード

ここまでのソースコードを以下に記載します。

product.go

productController.go

routes.go

db.go

コメントを残す