Jadual Kandungan
dalam
Melaksanakan operasi Redis dalam
Buat logik API dalam
Tentukan laluan API dalam
, mulakan pelayan HTTP:
untuk membekalkan aplikasi:
untuk menguruskan aplikasi dan redis:
Kesimpulan
Peningkatan Masa Depan
Rumah pembangunan bahagian belakang Golang Perkhidmatan Pemendekan URL Menggunakan GO

Perkhidmatan Pemendekan URL Menggunakan GO

Jan 30, 2025 am 02:25 AM

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:

mkdir url-shortener
cd url-shortener
go mod init github.com/<username>/url-shortener
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:

go get github.com/go-redis/redis/v8
go get github.com/gorilla/mux
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
package models

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

type ShortenResponse struct {
 ShortURL string `json:"short_url"`
}
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.
// ... (RedisStore struct and methods as in original example) ...
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.
// ... (ShortenURL, RedirectURL, GetTopDomains functions as in original example) ...
Salin selepas log masuk

7. Persediaan Laluan

Tentukan laluan API dalam

:

router/router.go

Ini mengkonfigurasi laluan untuk memendekkan, mengalihkan, dan mengambil domain teratas.
// ... (SetupRouter function as in original example) ...
Salin selepas log masuk

8. Titik Kemasukan Aplikasi

dalam

, mulakan pelayan HTTP:

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

// ... (main function as in original example) ...
Salin selepas log masuk
9. Penciptaan Dockerfile

Buat

untuk membekalkan aplikasi:

Dockerfile 10. Konfigurasi Docker-compose.yml

// ... (Dockerfile content as in original example) ...
Salin selepas log masuk
Gunakan

untuk menguruskan aplikasi dan redis:

docker-compose.yml 11. Pelaksanaan Permohonan

Bina dan jalankan aplikasi:
// ... (docker-compose.yml content as in original example) ...
Salin selepas log masuk

Ini membina imej Docker dan memulakan bekas.

12. API Endpoint Testing
docker-compose up --build
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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kelemahan debian openssl Apakah kelemahan debian openssl Apr 02, 2025 am 07:30 AM

OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Apr 02, 2025 pm 03:54 PM

Di bawah rangka kerja beegoorm, bagaimana untuk menentukan pangkalan data yang berkaitan dengan model? Banyak projek beego memerlukan pelbagai pangkalan data untuk dikendalikan secara serentak. Semasa menggunakan beego ...

Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Apr 02, 2025 am 09:12 AM

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Apr 02, 2025 pm 04:54 PM

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apr 02, 2025 pm 05:09 PM

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apabila menggunakan Goland untuk Pembangunan Bahasa GO, banyak pemaju akan menghadapi tag struktur tersuai ...

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Cara mengkonfigurasi pengembangan automatik MongoDB pada Debian Cara mengkonfigurasi pengembangan automatik MongoDB pada Debian Apr 02, 2025 am 07:36 AM

Artikel ini memperkenalkan cara mengkonfigurasi MongoDB pada sistem Debian untuk mencapai pengembangan automatik. Langkah -langkah utama termasuk menubuhkan set replika MongoDB dan pemantauan ruang cakera. 1. Pemasangan MongoDB Pertama, pastikan MongoDB dipasang pada sistem Debian. Pasang menggunakan arahan berikut: SudoaptDateSudoaptInstall-ImongoDB-Org 2. Mengkonfigurasi set replika replika MongoDB MongoDB Set memastikan ketersediaan dan kelebihan data yang tinggi, yang merupakan asas untuk mencapai pengembangan kapasiti automatik. Mula MongoDB Service: sudosystemctlstartmongodsudosys

See all articles