URL 短縮ツールは、シンプルなツールがいかに大きな効果をもたらすかを示す典型的な例です。リンクをソーシャル メディアで共有する場合でも、テキストで送信する場合でも、URL が短い方が管理が容易で、見た目もすっきりします。
このブログ投稿では、軽量で作成が非常に簡単な 2 つの URL 短縮プロジェクトについて説明します。どちらも Go に組み込まれています。1 つは Gin フレームワーク を使用し、もう 1 つはGorilla Muxを使用します。
それぞれが独自のアプローチをテーブルにもたらしているので、それぞれの特徴と違いを強調します。
~ ソースコード: ここにあります
最初のプロジェクトから始めましょう。単純な API を超えた URL 短縮プロジェクトです。これには、REST API バックエンド と デスクトップ GUI アプリケーション の両方が含まれており、開発者と技術者以外のユーザーが同様にアクセスできます。このプロジェクトは、バックエンドに Gin フレームワーク を使用し、GUI に Fyne を使用します。
REST API バックエンド
Gin フレームワークは、URL の短縮とリダイレクトのための高速で信頼性の高い API を強化します。軽量でありながら堅牢なので、このユースケースに最適です。
デスクトップ GUI
Fyne フレームワークで構築された GUI はクリーンでミニマルで使いやすいです。ユーザーは端末に触れることなく URL を短縮できます。
安全なランダムキー
短い URL は安全なランダム値を使用して生成されるため、一意性が保証され、衝突の可能性が低くなります。
デュアルアクセス
REST API に慣れている人でも、GUI を好む人でも、このプロジェクトは役に立ちます。
まず、リポジトリのクローンを作成し、必要な外部 Go パッケージをインストールします。
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
次のコマンドを使用してバックエンド サーバーを実行します。
go run server.go
サーバーは http://localhost:8080 で起動します。
次のコマンドを使用して GUI アプリケーションを起動します。
go run gui.go
これにより、長い URL を入力して短縮リンクを取得できるシンプルなウィンドウが開きます。
POST /shorten: 長い URL を受け入れ、短い URL を返します。
GET /:short: 短縮 URL を元の URL にリダイレクトします。
GUI が組み込まれているため、一般的なバックエンドのみのアプリケーションよりも多用途になります。
2 番目のプロジェクトはシンプルさがすべてです。 Gorilla Mux で構築されており、基本的でありながら機能的な URL 短縮機能の提供に重点を置いています。仕事を終わらせる軽量のソリューションを探しているなら、これが最適です。
Gorilla Mux は Go 用の強力なルーターであり、ここではすべての HTTP エンドポイントを処理するために使用されています。
短縮 URL は、元の URL の MD5 ハッシュを使用して作成されます。はい、私も同意します。ランダム生成ほど安全ではありませんが、それでも効率的で、決定的な結果が保証されます。
短縮機能は、単純なメモリ内マップを使用して URL を保存します。これにより高速になりますが、実稼働規模のアプリケーションには理想的ではありません。
外部依存関係として Gorilla Mux のみを使用しているため、このプロジェクトのセットアップとデプロイは簡単です。
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
go run server.go
サーバーは http://localhost:8080 で実行されます。
go run gui.go
git clone <repository-url> cd url-shortener go get -u github.com/gorilla/mux
go run main.go
これにより、元の URL にリダイレクトされます。
正直に言うと、実装は迅速で、学習プロジェクトや小規模なユースケースとしてうまく機能します。簡単なミニプロジェクトとして気に入りました。
違いを簡単に説明します:
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 |
私の個人的な意見では、両方のアプローチの使用は簡単でした。どちらも URL 短縮以外のさまざまなシナリオで使用できるため、ぜひ両方を試してみてください。
Gin ベースのソリューションは、ユーザー インターフェイスを備えたオールインワン ツールを必要とするユーザーに最適ですが、Mux ベースのバージョンは軽量の API のみのユースケースに最適です。
Go (およびその他の言語やツール) を使った私のミニプロジェクトの冒険に再びお付き合いいただき、ありがとうございます。次の試合で皆さんを捕まえます!乾杯!! ?
以上がGo の URL 短縮ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。