Erstellen von URL-Shortenern in Go: Eine Geschichte zweier Frameworks
URL-Shortener sind ein klassisches Beispiel dafür, wie einfache Tools große Wirkung erzielen können. Unabhängig davon, ob Sie Links in sozialen Medien teilen oder in einer Textnachricht versenden, sind kürzere URLs einfacher zu verwalten und sehen sauber aus.
In diesem Blog-Beitrag führe ich Sie durch diese beiden URL-Shortener-Projekte, die leichtgewichtig und sehr schnell zu erstellen sind. Beide sind integrierte Go-Projekte: eines verwendet das Gin-Framework und das andere mit Gorilla Mux.
Jedes bringt einen einzigartigen Ansatz mit, und ich werde ihre Merkmale und Unterschiede hervorheben.
~ Quellcode: Hier zu finden
URL-Shortener mit GUI: Funktionsreich und intuitiv
Beginnen wir mit dem ersten Projekt – einem URL-Shortener, der über eine einfache API hinausgeht. Es umfasst sowohl ein REST-API-Backend als auch eine Desktop-GUI-Anwendung, wodurch es sowohl für Entwickler als auch für technisch nicht versierte Benutzer zugänglich ist. Dieses Projekt verwendet das Gin-Framework für sein Backend und Fyne für die GUI.
Hauptmerkmale
REST-API-Backend
Das Gin-Framework bietet eine schnelle und zuverlässige API zum Kürzen und Umleiten von URLs. Es ist leicht und dennoch robust, perfekt für diesen Anwendungsfall.Desktop-GUI
Die mit dem Fyne-Framework erstellte GUI ist übersichtlich, minimalistisch und einfach zu bedienen. Es ermöglicht Benutzern, URLs zu kürzen, ohne ein Terminal berühren zu müssen.Sichere und zufällige Schlüssel
Die kurzen URLs werden mithilfe sicherer Zufallswerte generiert, um Einzigartigkeit zu gewährleisten und die Wahrscheinlichkeit von Kollisionen zu verringern.Dualer Zugriff
Egal, ob Sie mit REST-APIs vertraut sind oder eine GUI bevorzugen, dieses Projekt ist genau das Richtige für Sie.
Erste Schritte
Um zu beginnen, klonen Sie das Repository und installieren Sie die erforderlichen externen Go-Pakete:
git clone https://github.com/SirTingling/cloudprojects.git cd url-shortener go get -u github.com/gin-gonic/gin go get -u fyne.io/fyne/v2
Ausführen der App
- Backend-Server
Führen Sie den Backend-Server aus mit:
go run server.go
Der Server startet unter http://localhost:8080.
- Desktop-GUI
Starten Sie die GUI-Anwendung mit:
go run gui.go
Dies öffnet ein einfaches Fenster, in dem Sie lange URLs eingeben und im Gegenzug verkürzte Links erhalten können.
Wie funktioniert es?
- API-Endpunkte:
POST /kürzen: Akzeptiert eine lange URL und gibt eine kurze URL zurück.
GET /:short: Leitet die Kurz-URL zur Original-URL um.
- GUI-Workflow:
- Geben Sie die lange URL ein.
- Klicken Sie auf „URL kürzen“.
- Kopieren Sie den gekürzten Link und teilen Sie ihn.
Die Integration einer GUI macht es vielseitiger als eine typische reine Backend-Anwendung.
URL Shortener V2: Leicht und unkompliziert
Beim zweiten Projekt dreht sich alles um Einfachheit. Es wurde mit Gorilla Mux entwickelt und konzentriert sich auf die Bereitstellung eines einfachen, aber funktionalen URL-Shorteners. Wenn Sie nach einer leichten Lösung suchen, die Ihre Arbeit erledigt, ist dies die richtige Lösung, meine Freunde.
Hauptmerkmale
- Gorilla Mux für Routing
Gorilla Mux ist ein leistungsstarker Router für Go und wird hier zur Verwaltung aller HTTP-Endpunkte verwendet.
- MD5-basierte Schlüsselgenerierung
Verkürzte URLs werden mithilfe eines MD5-Hashs der Original-URL erstellt. Ja, ich stimme zu, dass es nicht so sicher ist wie die Zufallsgenerierung, dennoch ist es effizient und gewährleistet deterministische Ergebnisse.
- In-Memory-Speicher
Der Shortener verwendet eine einfache In-Memory-Map zum Speichern von URLs. Dies macht es schnell, ist jedoch nicht ideal für Anwendungen im Produktionsmaßstab.
- Minimale Abhängigkeiten
Da Gorilla Mux nur eine externe Abhängigkeit darstellt, ist dieses Projekt einfach einzurichten und bereitzustellen.
Lass uns gehen!
git clone https://github.com/SirTingling/cloudprojects.git cd url-shortener go get -u github.com/gin-gonic/gin go get -u fyne.io/fyne/v2
Ausführen der App
- Starten Sie den Server mit:
go run server.go
Der Server läuft unter http://localhost:8080.
Wie es funktioniert
- Kurz-URL erstellen:
- Senden Sie eine POST-Anfrage an /create mit dem URL-Parameter:
go run gui.go
- Antwort:
git clone <repository-url> cd url-shortener go get -u github.com/gorilla/mux </repository-url>
- Weiterleitung: Greifen Sie auf die verkürzte URL zu
go run main.go
Dadurch wird zur ursprünglichen URL weitergeleitet.
Ehrlich gesagt ist es schnell zu implementieren und funktioniert gut als Lernprojekt oder für kleine Anwendungsfälle. Mir gefiel es als schnelles Miniprojekt.
Vergleich der beiden Ansätze
Hier ist eine kurze Aufschlüsselung der Unterschiede:
Feature | URL Shortener with GUI (Gin) | URL Shortener V2 (Mux) |
---|---|---|
Framework | Gin | Gorilla Mux |
Frontend | Desktop GUI (Fyne) | None |
URL Key Generation | Secure Random Values | MD5 Hash |
Storage | Not Specified | In-Memory |
Complexity | Moderate | Simple |
Die Arbeit mit beiden Ansätzen war meiner persönlichen Meinung nach unkompliziert und ich hoffe, dass ihr beide ausprobiert, da sie beide in vielen verschiedenen Szenarien außerhalb der URL-Verkürzung verwendet werden können.
Die Gin-basierte Lösung ist ideal für diejenigen, die ein All-in-One-Tool mit Benutzeroberfläche wünschen, während die Mux-basierte Version perfekt für einfache, reine API-Anwendungsfälle ist.
Vielen Dank, dass Sie wieder bei meinem Miniprojekt-Abenteuer mit Go (und vielen weiteren Sprachen und Tools) dabei waren. Ich erwische euch im nächsten! Prost!! ?
Das obige ist der detaillierte Inhalt vonURL-Shortener in Go. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

OpenSSL bietet als Open -Source -Bibliothek, die in der sicheren Kommunikation weit verbreitet sind, Verschlüsselungsalgorithmen, Tasten und Zertifikatverwaltungsfunktionen. In seiner historischen Version sind jedoch einige Sicherheitslücken bekannt, von denen einige äußerst schädlich sind. Dieser Artikel konzentriert sich auf gemeinsame Schwachstellen und Antwortmaßnahmen für OpenSSL in Debian -Systemen. DebianopensL Bekannte Schwachstellen: OpenSSL hat mehrere schwerwiegende Schwachstellen erlebt, wie z. Ein Angreifer kann diese Sicherheitsanfälligkeit für nicht autorisierte Lesen sensibler Informationen auf dem Server verwenden, einschließlich Verschlüsselungsschlüssel usw.

In dem Artikel wird erläutert, wie das PPROF -Tool zur Analyse der GO -Leistung verwendet wird, einschließlich der Aktivierung des Profils, des Sammelns von Daten und der Identifizierung gängiger Engpässe wie CPU- und Speicherprobleme.Character Count: 159

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

Dieser Artikel zeigt, dass Mocks und Stubs in GO für Unit -Tests erstellen. Es betont die Verwendung von Schnittstellen, liefert Beispiele für Mock -Implementierungen und diskutiert Best Practices wie die Fokussierung von Mocks und die Verwendung von Assertion -Bibliotheken. Die Articl

In diesem Artikel werden die benutzerdefinierten Typ -Einschränkungen von GO für Generika untersucht. Es wird beschrieben, wie Schnittstellen die minimalen Typanforderungen für generische Funktionen definieren und die Sicherheitstypsicherheit und die Wiederverwendbarkeit von Code verbessern. Der Artikel erörtert auch Einschränkungen und Best Practices

In dem Artikel wird das Reflect -Paket von Go, das zur Laufzeitmanipulation von Code verwendet wird, von Vorteil für die Serialisierung, generische Programmierung und vieles mehr. Es warnt vor Leistungskosten wie langsamere Ausführung und höherer Speichergebrauch, beraten die vernünftige Verwendung und am besten am besten

In dem Artikel werden mit Tabellensteuerungstests in GO eine Methode mit einer Tabelle mit Testfällen getestet, um Funktionen mit mehreren Eingaben und Ergebnissen zu testen. Es zeigt Vorteile wie eine verbesserte Lesbarkeit, verringerte Vervielfältigung, Skalierbarkeit, Konsistenz und a

In diesem Artikel wird die Verwendung von Tracing -Tools zur Analyse von GO -Anwendungsausführungsfluss untersucht. Es werden manuelle und automatische Instrumentierungstechniken, den Vergleich von Tools wie Jaeger, Zipkin und Opentelemetrie erörtert und die effektive Datenvisualisierung hervorheben


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),