Heim >Backend-Entwicklung >Golang >URL -Kürzung Service mit Go GO
Haben Sie sich jemals gefragt, wie Dienste wie Bitly präzise, gemeinsam genutzbare Links von langen URLs erstellen? Dieses Tutorial führt Sie durch den Bau eines URL -Shortener mit GO, Redis und Docker. Es ist ein großartiges Projekt für Entwickler, um ihre Fähigkeiten in der praktischen Webentwicklung zu verbessern.
Dieses Tutorial Covers:
Stellen Sie sicher, dass Sie Folgendes installiert haben:
Erstellen Sie ein Projektverzeichnis und initialisieren Sie ein Go -Modul:
<code class="language-bash">mkdir url-shortener cd url-shortener go mod init github.com/<username>/url-shortener</code>
Dies generiert eine go.mod
-Datei für die Abhängigkeitsverwaltung. Ersetzen Sie <username>
durch Ihren Github -Benutzernamen.
organisieren Sie Ihre Projektdateien für Klarheit:
<code>url-shortener/ ├── handlers/ # API request handlers │ └── handlers.go ├── models/ # Data structures │ └── url.go ├── router/ # Routing configuration │ └── router.go ├── storage/ # Redis interaction logic │ └── redis-store.go ├── main.go # Application entry point ├── Dockerfile # Docker build instructions ├── docker-compose.yml # Docker Compose configuration └── go.mod # Go module file</code>
Installieren Sie die erforderlichen GO -Pakete:
<code class="language-bash">go get github.com/go-redis/redis/v8 go get github.com/gorilla/mux</code>
Diese bieten Redis -Interaktions- und Routing -Funktionen.
In models/url.go
definieren Sie Datenstrukturen für Anforderungen und Antworten:
<code class="language-go">package models type ShortenRequest struct { URL string `json:"url"` } type ShortenResponse struct { ShortURL string `json:"short_url"` }</code>
implementieren Sie Redis -Operationen in storage/redis-store.go
:
<code class="language-go">// ... (RedisStore struct and methods as in original example) ...</code>
Dieser Code verwaltet das Speichern und Abrufen von URLs mit REDIS. Die FNV-1A-Hash-Funktion sorgt für eine effiziente kurze URL-Erzeugung.
Erstellen Sie die API -Logik in handlers/handlers.go
:
<code class="language-go">// ... (ShortenURL, RedirectURL, GetTopDomains functions as in original example) ...</code>
Diese Handler verwalten URL -Verkürzung, Umleitung und Top -Domain -Abruf.
API -Routen in router/router.go
:
<code class="language-go">// ... (SetupRouter function as in original example) ...</code>
Dadurch konfiguriert
8. Anwendung Einstiegspunkt starten Sie den HTTP -Server: main.go
<code class="language-go">// ... (main function as in original example) ...</code>Dies initialisiert den Router und startet den Server, wobei alle registrierten Routen protokolliert werden.
9. Dockerfile -Erstellung
, um die Anwendung zu containieren: Dockerfile
<code class="language-dockerfile">// ... (Dockerfile content as in original example) ...</code>10. Docker-compose.yml-Konfiguration
, um die App und Redis zu verwalten: docker-compose.yml
<code class="language-yaml">// ... (docker-compose.yml content as in original example) ...</code>11. Anwendungsausführung
<code class="language-bash">docker-compose up --build</code>Dies erstellt die Docker -Bilder und startet die Container.
12. API -Endpunkt -Test
Sie haben erfolgreich einen URL -Kürzungsservice erstellt! Dieses Projekt zeigt praktische GO-, Redis- und Docker -Fähigkeiten.
Betrachten Sie diese Erweiterungen:
Der vollständige Code ist verfügbar [Link zum Repository]. Denken Sie daran, Platzhalter wie <username>
durch Ihre tatsächlichen Werte zu ersetzen.
Das obige ist der detaillierte Inhalt vonURL -Kürzung Service mit Go GO. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!