Tutorial ini menunjukkan kepada anda cara membina aplikasi CRUD (Buat, Baca, Kemas Kini, Padam) mudah menggunakan Golang, rangka kerja Gin dan PostgreSQL. Anda akan belajar mengurus data yang disimpan dalam pangkalan data PostgreSQL.
Jadual Kandungan
1. Pengenalan
Panduan ini menggunakan Gin, rangka kerja web Golang yang ringan, untuk mencipta titik akhir API. Aplikasi ini berinteraksi dengan pangkalan data PostgreSQL melalui pemacu pgx. Kebiasaan asas dengan API Golang dan REST diandaikan.
2. Prasyarat
Sebelum bermula, pastikan anda mempunyai:
3. Struktur Projek
Atur projek anda seperti berikut:
<code>crud-app/ ├── main.go ├── config/ │ └── database.go ├── controllers/ │ └── item.go ├── models/ │ └── item.go ├── routes/ │ └── routes.go ├── go.mod └── go.sum </code>
4. Persediaan Projek
Buat direktori projek dan mulakan modul 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>
Pasang pakej yang diperlukan:
<code class="language-bash">go get github.com/gin-gonic/gin go get github.com/jackc/pgx/v5</code>
5. Pangkalan Data dan Penciptaan Jadual
Buat pangkalan data PostgreSQL (cth., crud_app
).
Sambung ke pangkalan data dan buat jadual 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. Melaksanakan Pengendali CRUD
6.1 Sambungan Pangkalan Data (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 Definisi Model (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 Pengendali CRUD (pengawal/item.go): (Contoh: Cipta)
<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>
Laksanakan fungsi yang serupa untuk membaca, mengemas kini dan memadam item.
6.4 Takrif Laluan (laluan/laluan.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 Aplikasi Utama (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. Ujian API
Jalankan aplikasi (go run main.go
) dan uji titik akhir menggunakan Posmen atau alat yang serupa.
8. Kesimpulan
Anda telah berjaya mencipta aplikasi CRUD asas. Ingat untuk mengisi pelaksanaan pengendali CRUD yang hilang dan menyesuaikan rentetan sambungan pangkalan data kepada persekitaran anda. Asas ini boleh dikembangkan dengan ciri yang lebih canggih.
Atas ialah kandungan terperinci Cara Membina Aplikasi CRUD dengan Golang, Gin, dan PostgreSQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!