Gin は、軽量で拡張可能な Web フレームワークで、Go 言語の速度とパフォーマンス、そして他の追随を許さない同時実行性と保守性により、ますます人気が高まっています。この記事では、Gin フレームワークを使用して検索およびフィルター機能を実装する方法を学びます。
まず、基本的な Jin アプリケーションをセットアップする必要があります。これを行うには、必要な依存関係を go.mod ファイルに追加してインストールする必要があります。ここでは、Gin フレームワークと Go の ORM ライブラリ GORM を使用します。リレーショナル データベースとして MySQL を使用します。
go.mod ファイルは次のようになります:
module github.com/mygithubaccount/myginapp require ( github.com/gin-gonic/gin v1.7.2 gorm.io/driver/mysql v1.2.1 gorm.io/gorm v1.21.9 )
データベース接続には、次の形式の形式を使用します:
username:password@tcp(hostname:port)/database_name?charset=utf8mb4&parseTime=True&loc=Local
次に、開始する必要があります。 from gin と net/http を Gin パッケージにインポートします。
import ( "net/http" "github.com/gin-gonic/gin" )
メイン関数では、Gin のデフォルトのミドルウェアを有効にしながら、データベースに接続して db という変数を作成する必要があります。
func main() { dsn := "username:password@tcp(hostname:port)/database_name?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect to database") } r := gin.Default() r.Use(cors.Default()) // Routes r.GET("/healthcheck", healthCheckHandler) // Port binding port := os.Getenv("PORT") if port == "" { port = "8080" } r.Run(":" + port) }
これが基本的なセットアップです。次に、検索およびフィルター機能の実装を検討してみましょう。
次のデータモデルに検索機能とフィルタリング機能を実装します。
type User struct { ID uint `json:"id" gorm:"primarykey"` FirstName string `json:"firstName"` LastName string `json:"lastName"` Age int `json:"age"` Gender string `json:"gender"` Email string `json:"email" gorm:"uniqueIndex"` }
POST リクエストを処理するために、次のリクエスト ハンドラを定義します。
func searchUsersHandler(c *gin.Context) { var filter User var users []User if err := c.ShouldBindJSON(&filter); err != nil { c.AbortWithStatus(http.StatusBadRequest) return } db.Where(&filter).Find(&users) c.JSON(http.StatusOK, users) }
このハンドラーを使用すると、POST リクエストのパラメーターを User 構造に渡し、データベース テーブルでクエリを実行できます。他の方法でクエリを処理することもできます:
r.POST("/search", searchUsersHandler)
このルートを通じて、POST リクエストを発行し、ユーザー レコードのクエリに使用される User 構造をアプリケーションに送信できます。
これは、Gin フレームワークを使用して検索機能とフィルター機能を実装する方法です。要約すると、この記事では、データベースへの接続、Gin のデフォルトのミドルウェアの使用、データ モデルの定義、リクエスト ハンドラーの作成、およびルートをハンドラーにバインドする方法を学びました。このアプリケーションを使用して、リレーショナル データベース内のデータ レコードの検索とフィルタリングの基本操作を実行できるようになりました。
以上がGin フレームワークを使用して検索機能とフィルター機能を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。