[golang]fiber API1~Ambassador: マルチルートの設定~

こんにちは、KOUKIです。

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

前回は、Order APIを実装しました。

今回からは、毛色が変わってAmbassador APIを実装します。

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

前回

作るもの

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

エンドポイント
  • POST /api/ambassador/register
  • POST /api/ambassador/login
  • GET /api/ambassador/user
  • POST /api/ambassador/logout
  • PUT /api/ambassador/users/info
  • PUT /api/ambassador/users/password

今回は、上記ルートへの全てのパスを実装します。

Ambassador API

Ambassador ルートの設定

今回、Admin(管理者)とAmbassador(個人)へのリクエストを分離するため、コントローラーの処理は共有しますが、ルートは別に設定します

fiberのGrouping機能を使うと、上記のようにすっきりとしたコードを実装できます。

登録処理の修正

AdminとAmbassador APIの処理は大体同じですが、いくつか異なる点もあります。

User構造体のis_ambassadorプロパティもその内の一つです。

このプロパティは、Ambassadorユーザーを登録する時にはtrueである必要があります

そのため、auathController.goの登録処理を修正しましょう。

リクエストURLに「/api/ambassador」が含まれる場合は、trueを設定します。そうでない場合は、falseですね。

検証

以下のパラメータでユーザー登録しましょう。

  • URL: http://localhost:8000/api/ambassador/register
  • 形式: POST

登録できました。DBを確認してみましょう。

is_ambassdorがtrue(1)になっているので、問題なく登録されたようです。

次回

次回は、リクエストスコープを実装しましょう。

Go言語まとめ

ソースコード

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

routes.go

auathController.go

コメントを残す