ホームページ > バックエンド開発 > Golang > Golang、Gin、PostgreSQL を使用して CRUD アプリを構築する方法

Golang、Gin、PostgreSQL を使用して CRUD アプリを構築する方法

Susan Sarandon
リリース: 2025-01-26 14:03:09
オリジナル
321 人が閲覧しました

このチュートリアルでは、Golang、Gin フレームワーク、PostgreSQL を使用して単純な CRUD (作成、読み取り、更新、削除) アプリケーションを構築する方法を示します。 PostgreSQL データベースに保存されているデータを管理する方法を学びます。

How to Build a CRUD App with Golang, Gin, and PostgreSQL

目次

  1. はじめに
  2. 前提条件
  3. プロジェクトの構造
  4. プロジェクトのセットアップ
  5. データベースとテーブルの作成
  6. CRUD ハンドラーの実装
  7. API テスト
  8. 結論

1.はじめに

このガイドでは、軽量の Golang Web フレームワークである Pin を利用して API エンドポイントを作成します。 アプリケーションは、pgx ドライバーを介して PostgreSQL データベースと対話します。 Golang と REST API に関する基本的な知識があることが前提となります。

2.前提条件

始める前に、次のものが揃っていることを確認してください。

  • Golang (バージョン 1.20 以降)
  • PostgreSQL (任意のバージョン)
  • Postman (または同様の API テスト ツール)
  • コードエディター (VS Code など)

3.プロジェクト構造

プロジェクトを次のように整理します:

<code>crud-app/
├── main.go            
├── config/
│   └── database.go    
├── controllers/
│   └── item.go        
├── models/
│   └── item.go        
├── routes/
│   └── routes.go      
├── go.mod             
└── go.sum             </code>
ログイン後にコピー

4.プロジェクトのセットアップ

  1. プロジェクト ディレクトリを作成し、Go モジュールを初期化します。

    <code class="language-bash">mkdir crud-app
    cd crud-app
    go mod init github.com/yourusername/crud-app  // Replace with your GitHub username</code>
    ログイン後にコピー
  2. 必要なパッケージをインストールします:

    <code class="language-bash">go get github.com/gin-gonic/gin
    go get github.com/jackc/pgx/v5</code>
    ログイン後にコピー

5.データベースとテーブルの作成

  1. PostgreSQL データベースを作成します (例: crud_app)。

  2. データベースに接続し、items テーブルを作成します:

    <code class="language-sql">CREATE DATABASE crud_app;
    \c crud_app
    CREATE TABLE items (
        id SERIAL PRIMARY KEY,
        name TEXT NOT NULL,
        description TEXT,
        price NUMERIC(10, 2)
    );</code>
    ログイン後にコピー

6. CRUD ハンドラーの実装

6.1 データベース接続 (config/database.go):

<code class="language-go">package config

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/jackc/pgx/v5/stdlib"
)

var DB *sql.DB

func ConnectDatabase() {
    // ... (Connection string with your credentials) ...
}</code>
ログイン後にコピー

6.2 モデル定義 (models/item.go):

<code class="language-go">package models

type Item struct {
    ID          int     `json:"id"`
    Name        string  `json:"name"`
    Description string  `json:"description"`
    Price       float64 `json:"price"`
}</code>
ログイン後にコピー

6.3 CRUD ハンドラー (controllers/item.go): (例: Create)

<code class="language-go">package controllers

import (
    "crud-app/config"
    "crud-app/models"
    "github.com/gin-gonic/gin"
    "net/http"
)

func CreateItem(c *gin.Context) {
    // ... (Implementation for creating a new item) ...
}</code>
ログイン後にコピー

アイテムの読み取り、更新、削除用に同様の関数を実装します。

6.4 ルート定義 (routes/routes.go):

<code class="language-go">package routes

import (
    "crud-app/controllers"
    "github.com/gin-gonic/gin"
)

func SetupRoutes(router *gin.Engine) {
    router.POST("/items", controllers.CreateItem)
    // ... (Add routes for other CRUD operations) ...
}</code>
ログイン後にコピー

6.5 メインアプリケーション (main.go):

<code class="language-go">package main

import (
    "crud-app/config"
    "crud-app/routes"
    "github.com/gin-gonic/gin"
)

func main() {
    config.ConnectDatabase()
    r := gin.Default()
    routes.SetupRoutes(r)
    r.Run(":8080")
}</code>
ログイン後にコピー

7. API テスト

アプリケーション (go run main.go) を実行し、Postman または同様のツールを使用してエンドポイントをテストします。

8.結論

基本的な CRUD アプリケーションが正常に作成されました。不足している CRUD ハンドラー実装を忘れずに入力し、データベース接続文字列を環境に合わせて調整してください。 この基盤は、より高度な機能を追加して拡張できます。

以上がGolang、Gin、PostgreSQL を使用して CRUD アプリを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート