[golang]fiber API7~Ambassador: ソート機能~

こんにちは、KOUKIです。

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

前回は、プロダクトの検索機能を実装しました。

今回は、プロダクトのソート機能を実装しましょう。

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

前回

作るもの

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

エンドポイント
  • GET /api/ambassador/products/frontend
  • GET /api/ambassador/products/backend
  • POST /api/ambassador/links
  • GET /api/ambassador/stats
  • GET /api/ambassador/rankings

今回は、「/api/ambassador/products/backend」への処理を追加します。

ソート機能

プロダクトのソートは、URLの末尾の「sort=?」キーワードで実現しようと思います。前回の検索機能とやり方は同じですね。

「?」に指定するキーワードは、以下に固定します。

  • asc ・・・ 昇順
  • desc ・・・降順

asc(昇順)ソートの組み込み

前回実装したプロダクト検索処理(ProductBackend関数)に、asc(昇順)ソートを組み込みます。

ここでは、「Price」の価格が小さい順で商品が並ぶように実装しました。

また、ソートには、sortパッケージのSliceメソッドを使いました。

検証1

以下のパラメーターで検証してみましょう。

  • URL: http://localhost:8000/api/ambassador/products/backend?sort=asc
  • 形式: GET

Priceが小さい順に並んでいるので、OKですね。

desc(降順)ソートの組み込み

次に、desc(降順)ソートを実装しましょう。

今度は、Priceが大きい順に商品が並ぶようにしました。

検証2

以下のパラメーターで検証してみましょう。

  • URL: http://localhost:8000/api/ambassador/products/backend?sort=desc
  • 形式: GET

今度もOKですね。ちゃんとPriceが大きい順に表示されています。

次回

次回は、ページネーション機能を実装しましょう。

Go言語まとめ

ソースコード

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

productController.go

コメントを残す