Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Melayan Halaman Web dan Laluan API pada Port yang Sama dalam Go?

Bagaimana untuk Melayan Halaman Web dan Laluan API pada Port yang Sama dalam Go?

Susan Sarandon
Lepaskan: 2024-11-30 16:58:11
asal
988 orang telah melayarinya

How to Serve Web Pages and API Routes on the Same Port in Go?

Menyajikan Halaman Web dan Laluan API pada Port yang Sama dengan Corak Pemegang Berbeza

Menyajikan kedua-dua halaman web dan laluan API pada port yang sama menggunakan corak pemegang yang berbeza adalah keperluan biasa dalam pembangunan web. Begini cara untuk mencapainya dalam Go menggunakan pakej net/http:

Pakej net/http menyediakan jenis ServeMux, yang menguruskan set pengendali untuk permintaan HTTP masuk. Pendaftaran pengendali dilakukan melalui kaedah Handle. Mengikut dokumentasi, corak yang lebih panjang diutamakan daripada yang lebih pendek. Sifat ini boleh dimanfaatkan untuk menyampaikan halaman web dan laluan API secara serentak pada port yang sama.

Sebagai contoh, untuk menyediakan halaman web di bawah laluan akar / dan laluan API di bawah /api, anda boleh menggunakan kod berikut:

fs := http.FileServer(http.Dir("server/webapps/play_maths"))
http.Handle("/", fs) // Handles web pages at root path

apiRoutes := UserRoutes() // Initialize API routes as a handler
http.Handle("/api", apiRoutes.ServeHTTP) // Handles API routes
Salin selepas log masuk

Fungsi UserRoutes mencipta sub-router untuk laluan API. Secara lalai, sub-router mewarisi awalan penghala induk, tetapi anda boleh mengatasi tingkah laku ini menggunakan kaedah PathPrefix. Penghala kemudian digunakan sebagai pengendali untuk laluan API kami.

Dengan mendaftarkan pengendali halaman web sebelum pengendali laluan API, memastikan pengendali halaman web mempunyai corak yang lebih pendek, kami mengeksploitasi fakta bahawa corak yang lebih panjang diutamakan. Akibatnya, permintaan yang bermula dengan /api akan dikendalikan oleh pengendali laluan API, manakala semua permintaan lain (termasuk yang ke laluan akar) akan dikendalikan oleh pengendali halaman web.

Pendekatan ini menyediakan cara yang fleksibel untuk mengendalikan pelbagai jenis permintaan HTTP pada pelayan yang sama tanpa perlu menjalankan berbilang proses atau menggunakan proksi terbalik.

Atas ialah kandungan terperinci Bagaimana untuk Melayan Halaman Web dan Laluan API pada Port yang Sama dalam 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan