Go の URL 短縮ツール
Go での URL 短縮機能の構築: 2 つのフレームワークの物語
URL 短縮ツールは、シンプルなツールがいかに大きな効果をもたらすかを示す典型的な例です。リンクをソーシャル メディアで共有する場合でも、テキストで送信する場合でも、URL が短い方が管理が容易で、見た目もすっきりします。
このブログ投稿では、軽量で作成が非常に簡単な 2 つの URL 短縮プロジェクトについて説明します。どちらも Go に組み込まれています。1 つは Gin フレームワーク を使用し、もう 1 つはGorilla Muxを使用します。
それぞれが独自のアプローチをテーブルにもたらしているので、それぞれの特徴と違いを強調します。
~ ソースコード: ここにあります
GUI を使用した URL 短縮ツール: 機能が豊富で直感的
最初のプロジェクトから始めましょう。単純な 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
次のコマンドを使用して GUI アプリケーションを起動します。
go run gui.go
これにより、長い URL を入力して短縮リンクを取得できるシンプルなウィンドウが開きます。
どのように機能するのでしょうか?
- API エンドポイント:
POST /shorten: 長い URL を受け入れ、短い URL を返します。
GET /:short: 短縮 URL を元の URL にリダイレクトします。
- GUI ワークフロー:
- 長い URL を入力します。
- 「短縮 URL」をクリックします。
- 短縮リンクをコピーして共有します。
GUI が組み込まれているため、一般的なバックエンドのみのアプリケーションよりも多用途になります。
URL 短縮ツール V2: 軽量で簡単
2 番目のプロジェクトはシンプルさがすべてです。 Gorilla Mux で構築されており、基本的でありながら機能的な URL 短縮機能の提供に重点を置いています。仕事を終わらせる軽量のソリューションを探しているなら、これが最適です。
主な特長
- ルーティング用のGorilla Mux
Gorilla Mux は Go 用の強力なルーターであり、ここではすべての HTTP エンドポイントを処理するために使用されています。
- MD5 ベースの鍵生成
短縮 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 で実行されます。
仕組み
- 短縮 URL の作成:
- url パラメーターを使用して POST リクエストを /create に送信します。
go run gui.go
- 応答:
git clone <repository-url> cd url-shortener go get -u github.com/gorilla/mux
- リダイレクト: 短縮URLにアクセスします
go run main.go
これにより、元の URL にリダイレクトされます。
正直に言うと、実装は迅速で、学習プロジェクトや小規模なユースケースとしてうまく機能します。簡単なミニプロジェクトとして気に入りました。
2 つのアプローチの比較
違いを簡単に説明します:
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Golangは並行性がCよりも優れていますが、Cは生の速度ではGolangよりも優れています。 1)Golangは、GoroutineとChannelを通じて効率的な並行性を達成します。これは、多数の同時タスクの処理に適しています。 2)Cコンパイラの最適化と標準ライブラリを介して、極端な最適化を必要とするアプリケーションに適したハードウェアに近い高性能を提供します。

speed、効率、およびシンプル性をspeedsped.1)speed:gocompilesquilesquicklyandrunseffictient、理想的なlargeprojects.2)効率:等系dribribraryreducesexexternaldedenciess、開発効果を高める3)シンプルさ:

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。

GolangとCのパフォーマンスの違いは、主にメモリ管理、コンピレーションの最適化、ランタイム効率に反映されています。 1)Golangのゴミ収集メカニズムは便利ですが、パフォーマンスに影響を与える可能性があります。

Golangは迅速な発展と同時シナリオに適しており、Cは極端なパフォーマンスと低レベルの制御が必要なシナリオに適しています。 1)Golangは、ごみ収集と並行機関のメカニズムを通じてパフォーマンスを向上させ、高配列Webサービス開発に適しています。 2)Cは、手動のメモリ管理とコンパイラの最適化を通じて究極のパフォーマンスを実現し、埋め込みシステム開発に適しています。

Cは、ハードウェアリソースと高性能の最適化が必要なシナリオにより適していますが、Golangは迅速な開発と高い並行性処理が必要なシナリオにより適しています。 1.Cの利点は、ハードウェア特性と高い最適化機能に近いものにあります。これは、ゲーム開発などの高性能ニーズに適しています。 2.Golangの利点は、その簡潔な構文と自然な並行性サポートにあり、これは高い並行性サービス開発に適しています。

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。
