ホームページ > バックエンド開発 > Golang > Go の URL 短縮ツール

Go の URL 短縮ツール

Mary-Kate Olsen
リリース: 2024-11-30 08:51:10
オリジナル
409 人が閲覧しました

Go での URL 短縮機能の構築: 2 つのフレームワークの物語

URL 短縮ツールは、シンプルなツールがいかに大きな効果をもたらすかを示す典型的な例です。リンクをソーシャル メディアで共有する場合でも、テキストで送信する場合でも、URL が短い方が管理が容易で、見た目もすっきりします。

このブログ投稿では、軽量で作成が非常に簡単な 2 つの URL 短縮プロジェクトについて説明します。どちらも Go に組み込まれています。1 つは Gin フレームワーク を使用し、もう 1 つはGorilla Muxを使用します。

それぞれが独自のアプローチをテーブルにもたらしているので、それぞれの特徴と違いを強調します。

~ ソースコード: ここにあります


GUI を使用した URL 短縮ツール: 機能が豊富で直感的

最初のプロジェクトから始めましょう。単純な API を超えた URL 短縮プロジェクトです。これには、REST API バックエンドデスクトップ GUI アプリケーション の両方が含まれており、開発者と技術者以外のユーザーが同様にアクセスできます。このプロジェクトは、バックエンドに Gin フレームワーク を使用し、GUI に Fyne を使用します。

主な特長

  1. REST API バックエンド

    Gin フレームワークは、URL の短縮とリダイレクトのための高速で信頼性の高い API を強化します。軽量でありながら堅牢なので、このユースケースに最適です。

  2. デスクトップ GUI

    Fyne フレームワークで構築された GUI はクリーンでミニマルで使いやすいです。ユーザーは端末に触れることなく URL を短縮できます。

  3. 安全なランダムキー

    短い URL は安全なランダム値を使用して生成されるため、一意性が保証され、衝突の可能性が低くなります。

  4. デュアルアクセス

    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 ワークフロー:
  1. 長い URL を入力します。
  2. 「短縮 URL」をクリックします。
  3. 短縮リンクをコピーして共有します。

GUI が組み込まれているため、一般的なバックエンドのみのアプリケーションよりも多用途になります。


URL 短縮ツール V2: 軽量で簡単

2 番目のプロジェクトはシンプルさがすべてです。 Gorilla Mux で構築されており、基本的でありながら機能的な URL 短縮機能の提供に重点を置いています。仕事を終わらせる軽量のソリューションを探しているなら、これが最適です。

主な特長

  1. ルーティング用のGorilla Mux

Gorilla Mux は Go 用の強力なルーターであり、ここではすべての HTTP エンドポイントを処理するために使用されています。

  1. MD5 ベースの鍵生成

短縮 URL は、元の URL の MD5 ハッシュを使用して作成されます。はい、私も同意します。ランダム生成ほど安全ではありませんが、それでも効率的で、決定的な結果が保証されます。

  1. メモリ内ストレージ

短縮機能は、単純なメモリ内マップを使用して URL を保存します。これにより高速になりますが、実稼働規模のアプリケーションには理想的ではありません。

  1. 最小限の依存関係

外部依存関係として 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 の作成:
  1. url パラメーターを使用して POST リクエストを /create に送信します。
go run gui.go
ログイン後にコピー
ログイン後にコピー
  1. 応答:
git clone <repository-url>
cd url-shortener
go get -u github.com/gorilla/mux
ログイン後にコピー
  1. リダイレクト: 短縮URLにアクセスします
go run main.go
ログイン後にコピー

これにより、元の URL にリダイレクトされます。

正直に言うと、実装は迅速で、学習プロジェクトや小規模なユースケースとしてうまく機能します。簡単なミニプロジェクトとして気に入りました。


2 つのアプローチの比較

違いを簡単に説明します:

機能 GUI を使用した URL 短縮ツール (Gin) URL 短縮 V2 (Mux)
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
フレームワーク ジン ゴリラマックス フロントエンド デスクトップ GUI (Fyne) なし URL キーの生成 安全なランダム値 MD5 ハッシュ ストレージ 指定されていません メモリ内 複雑さ 中程度 シンプル テーブル>

私の個人的な意見では、両方のアプローチの使用は簡単でした。どちらも URL 短縮以外のさまざまなシナリオで使用できるため、ぜひ両方を試してみてください。

Gin ベースのソリューションは、ユーザー インターフェイスを備えたオールインワン ツールを必要とするユーザーに最適ですが、Mux ベースのバージョンは軽量の API のみのユースケースに最適です。


Go (およびその他の言語やツール) を使った私のミニプロジェクトの冒険に再びお付き合いいただき、ありがとうございます。次の試合で皆さんを捕まえます!乾杯!! ?

URL Shortener in Go

以上がGo の URL 短縮ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート