Rumah > pembangunan bahagian belakang > Golang > Perkhidmatan Pemendekan URL Menggunakan GO

Perkhidmatan Pemendekan URL Menggunakan GO

DDD
Lepaskan: 2025-01-30 02:25:14
asal
284 orang telah melayarinya

URL Shortening Service using Go

Pernah tertanya -tanya bagaimana perkhidmatan seperti Bitly mencipta pautan ringkas, boleh dikongsi dari URL yang panjang? Tutorial ini membimbing anda melalui membina pemendekkan URL menggunakan Go, Redis, dan Docker. Ini adalah projek yang hebat untuk pemaju untuk meningkatkan kemahiran mereka dalam pembangunan web praktikal.

Hasil Pembelajaran Utama

Tutorial ini merangkumi:

    persediaan projek pergi dengan modul.
  • perkembangan API yang tenang di Go.
  • memanfaatkan redis untuk penyimpanan nilai kunci yang cekap.
  • Penstrukturan kod GO untuk mengekalkan dan berskala.
Prasyarat

Pastikan anda mempunyai yang berikut dipasang:

    Docker
  • desktop docker (pasang pada sistem anda)
Pelaksanaan langkah demi langkah

1. Inisialisasi Projek

Buat direktori projek dan mulakan modul GO:

<code class="language-bash">mkdir url-shortener
cd url-shortener
go mod init github.com/<username>/url-shortener</code>
Salin selepas log masuk
Ini menghasilkan fail

untuk pengurusan ketergantungan. Ganti go.mod dengan nama pengguna github anda. <username>

2. Struktur Projek

mengatur fail projek anda untuk kejelasan:

<code>url-shortener/
├── handlers/         # API request handlers
│   └── handlers.go
├── models/           # Data structures
│   └── url.go
├── router/           # Routing configuration
│   └── router.go
├── storage/          # Redis interaction logic
│   └── redis-store.go
├── main.go           # Application entry point
├── Dockerfile        # Docker build instructions
├── docker-compose.yml # Docker Compose configuration
└── go.mod            # Go module file</code>
Salin selepas log masuk
3. Pemasangan Ketergantungan

Pasang pakej Go yang diperlukan:

<code class="language-bash">go get github.com/go-redis/redis/v8
go get github.com/gorilla/mux</code>
Salin selepas log masuk
Ini menyediakan interaksi redis dan keupayaan penghalaan.

4. Definisi Model Data

dalam

, tentukan struktur data untuk permintaan dan tindak balas:

models/url.go

5. Konfigurasi Penyimpanan Redis
<code class="language-go">package models

type ShortenRequest struct {
 URL string `json:"url"`
}

type ShortenResponse struct {
 ShortURL string `json:"short_url"`
}</code>
Salin selepas log masuk

Melaksanakan operasi Redis dalam

:

storage/redis-store.go

Kod ini mengendalikan penjimatan dan mengambil URL menggunakan REDIS. Fungsi hash FNV-1A memastikan generasi url pendek yang cekap.
<code class="language-go">// ... (RedisStore struct and methods as in original example) ...</code>
Salin selepas log masuk

6. Pelaksanaan Handler API

Buat logik API dalam

:

handlers/handlers.go

Pengendali ini menguruskan pemendekan URL, pengalihan semula, dan pengambilan domain teratas.
<code class="language-go">// ... (ShortenURL, RedirectURL, GetTopDomains functions as in original example) ...</code>
Salin selepas log masuk

7. Persediaan Laluan

Tentukan laluan API dalam

:

router/router.go

Ini mengkonfigurasi laluan untuk memendekkan, mengalihkan, dan mengambil domain teratas.
<code class="language-go">// ... (SetupRouter function as in original example) ...</code>
Salin selepas log masuk

8. Titik Kemasukan Aplikasi

dalam

, mulakan pelayan HTTP:

main.go Ini memulakan penghala dan memulakan pelayan, melayari semua laluan berdaftar.

<code class="language-go">// ... (main function as in original example) ...</code>
Salin selepas log masuk
9. Penciptaan Dockerfile

Buat

untuk membekalkan aplikasi:

Dockerfile 10. Konfigurasi Docker-compose.yml

<code class="language-dockerfile">// ... (Dockerfile content as in original example) ...</code>
Salin selepas log masuk
Gunakan

untuk menguruskan aplikasi dan redis:

docker-compose.yml 11. Pelaksanaan Permohonan

Bina dan jalankan aplikasi:
<code class="language-yaml">// ... (docker-compose.yml content as in original example) ...</code>
Salin selepas log masuk

Ini membina imej Docker dan memulakan bekas.

12. API Endpoint Testing
<code class="language-bash">docker-compose up --build</code>
Salin selepas log masuk

menguji titik akhir API menggunakan alat seperti Postman atau Curl (contoh yang disediakan dalam respons asal).

Kesimpulan

Anda telah berjaya membina perkhidmatan pemendekan URL! Projek ini menunjukkan kemahiran praktikal, redis, dan docker.

Peningkatan Masa Depan

Pertimbangkan sambungan ini:

  • URL pendek yang disesuaikan: Benarkan pengguna menentukan pautan pendek mereka.
  • Dashboard Analytics: Statistik Penggunaan URL Trek.
  • URL Expiration: Melaksanakan tamat tempoh URL pendek.

Kod lengkap tersedia [pautan ke repositori]. Ingatlah untuk menggantikan ruang letak seperti <username> dengan nilai sebenar anda.

Atas ialah kandungan terperinci Perkhidmatan Pemendekan URL Menggunakan GO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan