Dieses Tutorial zeigt Ihnen, wie Sie mit Golang, dem Gin-Framework und PostgreSQL eine einfache CRUD-Anwendung (Erstellen, Lesen, Aktualisieren, Löschen) erstellen. Sie lernen, in einer PostgreSQL-Datenbank gespeicherte Daten zu verwalten.
Inhaltsverzeichnis
1. Einführung
Diese Anleitung verwendet Gin, ein leichtes Golang-Web-Framework, um API-Endpunkte zu erstellen. Die Anwendung interagiert über den pgx-Treiber mit einer PostgreSQL-Datenbank. Grundkenntnisse mit Golang und REST-APIs werden vorausgesetzt.
2. Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
3. Projektstruktur
Organisieren Sie Ihr Projekt wie folgt:
<code>crud-app/ ├── main.go ├── config/ │ └── database.go ├── controllers/ │ └── item.go ├── models/ │ └── item.go ├── routes/ │ └── routes.go ├── go.mod └── go.sum </code>
4. Projekt-Setup
Erstellen Sie das Projektverzeichnis und initialisieren Sie ein Go-Modul:
<code class="language-bash">mkdir crud-app cd crud-app go mod init github.com/yourusername/crud-app // Replace with your GitHub username</code>
Notwendige Pakete installieren:
<code class="language-bash">go get github.com/gin-gonic/gin go get github.com/jackc/pgx/v5</code>
5. Datenbank- und Tabellenerstellung
Erstellen Sie eine PostgreSQL-Datenbank (z. B. crud_app
).
Stellen Sie eine Verbindung zur Datenbank her und erstellen Sie die items
Tabelle:
<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. Implementierung von CRUD-Handlern
6.1 Datenbankverbindung (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 Modelldefinition (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-Handler (controllers/item.go): (Beispiel: Erstellen)
<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>
Implementieren Sie ähnliche Funktionen zum Lesen, Aktualisieren und Löschen von Elementen.
6.4 Routendefinitionen (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 Hauptanwendung (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-Tests
Führen Sie die Anwendung aus (go run main.go
) und testen Sie die Endpunkte mit Postman oder einem ähnlichen Tool.
8. Fazit
Sie haben erfolgreich eine grundlegende CRUD-Anwendung erstellt. Denken Sie daran, die fehlenden CRUD-Handler-Implementierungen auszufüllen und die Datenbankverbindungszeichenfolge an Ihre Umgebung anzupassen. Diese Grundlage kann mit erweiterten Funktionen erweitert werden.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Crud -App mit Golang, Gin und PostgreSQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!