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>
9. Dockerfile -Erstellung
, um die Anwendung zu containieren: Dockerfile
<code class="language-dockerfile">// ... (Dockerfile content as in original example) ...</code>
, um die App und Redis zu verwalten: docker-compose.yml
<code class="language-yaml">// ... (docker-compose.yml content as in original example) ...</code>
<code class="language-bash">docker-compose up --build</code>
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!