Rumah pembangunan bahagian belakang Golang Cara menggunakan fungsi Golang untuk mengendalikan penghalaan permintaan web

Cara menggunakan fungsi Golang untuk mengendalikan penghalaan permintaan web

May 02, 2024 am 10:18 AM
git golang penghalaan permintaan web

Di Golang, menggunakan fungsi untuk mengendalikan penghalaan permintaan web ialah cara yang boleh diperluas dan modular untuk membina API. Ia melibatkan langkah berikut: Pasang pustaka penghala HTTP. Buat penghala. Tentukan corak laluan dan fungsi pengendali untuk laluan. Tulis fungsi pengendali untuk mengendalikan permintaan dan membalas respons. Jalankan penghala menggunakan pelayan HTTP. Proses ini membolehkan pendekatan modular apabila mengendalikan permintaan masuk, dengan itu meningkatkan kebolehgunaan semula, kebolehselenggaraan dan kebolehujian.

Cara menggunakan fungsi Golang untuk mengendalikan penghalaan permintaan web

Cara menggunakan fungsi Golang untuk mengendalikan penghalaan permintaan web

Di Golang, menggunakan fungsi untuk mengendalikan penghalaan permintaan web ialah pendekatan biasa untuk membina API modular yang boleh dikembangkan. Artikel ini akan menunjukkan kepada anda cara menggunakan pustaka penghala HTTP (seperti github.com/gorilla/mux) untuk menentukan laluan dan menggunakan pengendali untuk mengendalikan permintaan masuk. github.com/gorilla/mux)来定义路由并使用处理函数来处理传入的请求。

第一步:安装 HTTP 路由器库

import "github.com/gorilla/mux"
Salin selepas log masuk

第二步:创建路由器

router := mux.NewRouter()
Salin selepas log masuk

第三步:定义路由

为路由定义路径模式,并指定用于处理请求的处理函数。例如:

router.HandleFunc("/users", getUsers).Methods("GET") // GET /users 处理函数
router.HandleFunc("/users/{id}", getUser).Methods("GET") // GET /users/{id} 处理函数
Salin selepas log masuk

第四步:编写处理函数

处理函数是用于处理传入请求并返回响应的函数。以下是处理函数示例:

func getUsers(w http.ResponseWriter, r *http.Request) {
  // 获取所有用户数据
  users := []User{
    {ID: 1, Name: "John"},
    {ID: 2, Name: "Jane"},
  }

  // 以 JSON 格式编码响应
  json, err := json.Marshal(users)
  if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
  }

  // 设置响应标头和状态代码
  w.Header().Set("Content-Type", "application/json")
  w.WriteHeader(http.StatusOK)

  // 写入响应主体
  w.Write(json)
}
Salin selepas log masuk

第五步:运行路由器

使用 HTTP 服务器启动路由器,例如:

srv := &http.Server{
  Handler: router,
  Addr:    ":8080",
}

if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
  log.Fatal(err)
}
Salin selepas log masuk

实战案例

创建一个简单的 API 来管理用户:

package main

import (
  "github.com/gorilla/mux"
  "net/http"
)

type User struct {
  ID   int
  Name string
}

var users = []User{
  {1, "John"},
  {2, "Jane"},
}

func main() {
  router := mux.NewRouter()
  router.HandleFunc("/users", Get).Methods("GET")
  router.HandleFunc("/users/{id}", GetByID).Methods("GET")
  srv := &http.Server{
    Handler: router,
    Addr:    ":8080",
  }
  srv.ListenAndServe()
}

func Get(w http.ResponseWriter, r *http.Request) { json.Encode(w, users) }
func GetByID(w http.ResponseWriter, r *http.Request) {
  id := mux.Vars(r)["id"] // 从 URL 中提取参数
  for _, user := range users {
    if user.ID == id {
      json.Encode(w, user)
      return
    }
  }
  http.Error(w, "Not found", http.StatusNotFound)
}
Salin selepas log masuk

通过运行此程序,你可以在 localhost:8080/userslocalhost:8080/users/{id}

🎜Langkah 1: Pasang pustaka penghala HTTP🎜🎜rrreee🎜🎜Langkah 2: Cipta penghala🎜🎜rrreee🎜🎜Langkah 3: Tentukan laluan🎜🎜🎜Tentukan laluan untuk pemprosesan yang digunakan dan tentukan corak pengendalian fungsi permintaan. Contohnya: 🎜rrreee🎜🎜Langkah 4: Tulis fungsi pemprosesan 🎜🎜🎜Fungsi pemprosesan ialah fungsi yang memproses permintaan masuk dan mengembalikan respons. Berikut ialah contoh fungsi pengendali: 🎜rrreee🎜🎜Langkah 5: Jalankan penghala 🎜🎜🎜Mulakan penghala menggunakan pelayan HTTP, contohnya: 🎜rrreee🎜🎜Kes praktikal 🎜🎜🎜Mencipta pengguna mudah : 🎜rrreee🎜Dengan menjalankan Dengan program ini, anda boleh mendapatkan dan mendapatkan semula maklumat pengguna di bawah laluan localhost:8080/users dan localhost:8080/users/{id}. 🎜

Atas ialah kandungan terperinci Cara menggunakan fungsi Golang untuk mengendalikan penghalaan permintaan web. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Bagaimana untuk membaca dan menulis fail dengan selamat menggunakan Golang? Bagaimana untuk membaca dan menulis fail dengan selamat menggunakan Golang? Jun 06, 2024 pm 05:14 PM

Membaca dan menulis fail dengan selamat dalam Go adalah penting. Garis panduan termasuk: Menyemak kebenaran fail Menutup fail menggunakan tangguh Mengesahkan laluan fail Menggunakan tamat masa konteks Mengikuti garis panduan ini memastikan keselamatan data anda dan keteguhan aplikasi anda.

Cara Memasang DeepSeek Cara Memasang DeepSeek Feb 19, 2025 pm 05:48 PM

Terdapat banyak cara untuk memasang DeepSeek, termasuk: Menyusun dari Sumber (untuk pemaju berpengalaman) menggunakan pakej yang dikompilasi (untuk pengguna Windows) menggunakan bekas docker (untuk yang paling mudah, tidak perlu bimbang tentang keserasian) Dokumen rasmi dengan berhati -hati dan menyediakannya sepenuhnya untuk mengelakkan masalah yang tidak perlu.

Ringkasan Soalan Lazim untuk Penggunaan DeepSeek Ringkasan Soalan Lazim untuk Penggunaan DeepSeek Feb 19, 2025 pm 03:45 PM

Panduan Pengguna Alat DeepSeekai dan FAQ DeepSeek adalah alat pintar AI yang kuat. FAQ: Perbezaan antara kaedah akses yang berbeza: Tidak ada perbezaan fungsi antara versi web, versi aplikasi dan panggilan API, dan aplikasi hanya pembungkus untuk versi web. Penggunaan tempatan menggunakan model penyulingan, yang sedikit lebih rendah daripada versi penuh DeepSeek-R1, tetapi model 32-bit secara teorinya mempunyai keupayaan versi penuh 90%. Apa itu bar? Sillytavern adalah antara muka depan yang memerlukan memanggil model AI melalui API atau Ollama. Apa itu Had Breaking

Bagaimana untuk mendaftar untuk LBank Exchange? Bagaimana untuk mendaftar untuk LBank Exchange? Aug 21, 2024 pm 02:20 PM

Untuk mendaftar untuk LBank layari laman web rasmi dan klik "Daftar". Masukkan e-mel dan kata laluan anda dan sahkan e-mel anda. Muat turun apl LBank iOS: Cari "LBank" dalam AppStore. Muat turun dan pasang aplikasi "LBank-DigitalAssetExchange". Android: Cari "LBank" di Gedung Google Play. Muat turun dan pasang aplikasi "LBank-DigitalAssetExchange".

Apakah alat AI? Apakah alat AI? Nov 29, 2024 am 11:11 AM

Alat AI termasuk: Doubao, ChatGPT, Gemini, BlenderBot, dll.

Berapakah margin yang diperlukan untuk kontrak niaga hadapan Huobi untuk mengelakkan pembubaran? Berapakah margin yang diperlukan untuk kontrak niaga hadapan Huobi untuk mengelakkan pembubaran? Jul 02, 2024 am 11:17 AM

Pembubaran kontrak Huobi ialah pembubaran paksa yang disebabkan oleh margin yang tidak mencukupi. Untuk mengelakkan pembubaran, nisbah margin disyorkan: tidak kurang daripada 10% untuk kontrak mata wang arus perdana dan tidak kurang daripada 20% untuk kontrak mata wang bukan arus perdana. Formula pengiraan margin: margin diperlukan untuk pembubaran = nilai kontrak/(kadar kerugian 1-henti/harga pembukaan). Nisbah margin yang tinggi membantu mengurangkan risiko pembubaran. Nisbah leverage perdagangan kontrak adalah tinggi, dan pulangan serta risiko wujud bersama, jadi margin perlu diuruskan dengan teliti.

Delphi Digital: Bagaimana Mengubah Ekonomi AI Baru Dengan Mengurangkan Senibina Elizaos V2 Baru? Delphi Digital: Bagaimana Mengubah Ekonomi AI Baru Dengan Mengurangkan Senibina Elizaos V2 Baru? Mar 04, 2025 pm 07:00 PM

ELIZAOSV2: Memperkasakan AI dan memimpin ekonomi baru Web3. Artikel ini akan menyelam ke dalam inovasi utama ElizaOSv2 dan bagaimana ia membentuk ekonomi masa depan yang didorong oleh AI. AIT Automasi: Pergi secara bebas mengendalikan Elizaos pada asalnya merupakan rangka kerja AI yang memberi tumpuan kepada automasi Web3. Versi V1 membolehkan AI berinteraksi dengan kontrak pintar dan data blockchain, manakala versi V2 mencapai peningkatan prestasi yang signifikan. Daripada hanya melaksanakan arahan mudah, AI secara bebas dapat menguruskan aliran kerja, mengendalikan perniagaan dan membangunkan strategi kewangan. Peningkatan Seni Bina: Ditingkatkan a

Sebagai pembuat pasaran teratas memasuki pasaran crypto, apakah impak yang akan dimiliki oleh Castle Securities terhadap industri ini? Sebagai pembuat pasaran teratas memasuki pasaran crypto, apakah impak yang akan dimiliki oleh Castle Securities terhadap industri ini? Mar 04, 2025 pm 08:03 PM

Kemasukan pembuat pasaran Castle Securities ke dalam pembuat pasaran Bitcoin adalah simbol kematangan pasaran Bitcoin dan langkah utama bagi pasukan kewangan tradisional untuk bersaing untuk kuasa harga aset masa depan. Pada 25 Februari, menurut Bloomberg, Citadel Securities berusaha untuk menjadi penyedia kecairan untuk kriptografi. Syarikat itu bertujuan untuk menyertai senarai pembuat pasaran di pelbagai bursa, termasuk pertukaran yang dikendalikan oleh Coinbaseglobal, Binanceholdings dan Crypto.com, orang yang biasa dengan perkara itu berkata. Setelah diluluskan oleh pertukaran, syarikat itu pada mulanya merancang untuk menubuhkan pasukan pembuat pasaran di luar Amerika Syarikat. Langkah ini bukan hanya tanda

See all articles