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)

ホットトピック











OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

Beegoormフレームワークでは、モデルに関連付けられているデータベースを指定する方法は?多くのBEEGOプロジェクトでは、複数のデータベースを同時に操作する必要があります。 Beegoを使用する場合...

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

この記事では、自動拡張を実現するためにDebianシステムでMongodbを構成する方法を紹介します。主な手順には、Mongodbレプリカセットとディスクスペース監視のセットアップが含まれます。 1。MongoDBのインストール最初に、MongoDBがDebianシステムにインストールされていることを確認してください。次のコマンドを使用してインストールします。sudoaptupdatesudoaptinstinstall-yymongodb-org2。mongodbレプリカセットMongodbレプリカセットの構成により、自動容量拡張を達成するための基礎となる高可用性とデータ冗長性が保証されます。 Mongodbサービスを開始:Sudosystemctlstartmongodsudosys
