ANALISIS MENDALAM REQUEST DAN RESPONSE

Setiap pelayan HTTP mengikut kitaran tertentu. Ia menerima sambungan, menghuraikan permintaan, memadankan laluan, dan menghantar respons.

Hyperlane memudahkan proses ini. Anda boleh menguruskan kitaran ini menggunakan panggilan kaedah secara langsung atau makro atribut yang ringkas.

Bagaimana Hyperlane Mengendalikan Kitaran Hayat Permintaan:

  • Pelayan menerima sambungan TCP.
  • Ia menghuraikan aliran (stream) kepada objek Request.
  • Middleware permintaan memproses data.
  • Pelayan memadankan permintaan dengan satu laluan.
  • Pengendali laluan (route handler) dilaksanakan.
  • Middleware respons dijalankan.
  • Respons dihantar semula kepada klien.

Mengakses Data Permintaan: Anda boleh menggunakan objek Context untuk mengambil data daripada permintaan. • get_method() untuk kaedah HTTP. • get_path() untuk laluan URL. • get_headers() untuk semua pengepala (headers). • get_body_json() untuk menghuraikan kandungan JSON. • try_get_query() untuk mencari parameter tertentu.

Hyperlane juga menggunakan makro atribut untuk mengautomasikan pengekstrakan data. Daripada menulis kod secara manual, anda boleh menggunakan tag seperti:

  • #[request_body_json] untuk menghuraikan JSON dengan serta-merta.
  • #[request_query] untuk mengambil parameter URL.
  • #[request_header] untuk mengambil pengepala tertentu.

Pengurusan dan Penapisan Laluan: Anda boleh mentakrifkan laluan dinamik menggunakan sintaks {param}. Contohnya: "/test/{text}". Hyperlane juga membolehkan anda menapis permintaan pada peringkat laluan. Anda boleh:

  • Memadankan hos tertentu dengan #[host].
  • Menolak rujukan (referer) tertentu dengan #[reject_referer].
  • Mengaplikasikan logik tersuai dengan #[filter].

Menguruskan Respons dan Kuki: Anda mengawal respons melalui objek Context. Anda boleh menetapkan kod status, pengepala, dan kandungan secara manual. Untuk memudahkan ini, gunakan makro respons:

  • #[response_status_code(200)]
  • #[response_body("Hello World")]

Untuk pengurusan sesi, gunakan CookieBuilder. Ia membolehkan anda menetapkan tarikh luput, domain, dan bendera keselamatan seperti HttpOnly atau Secure dengan sintaks yang kemas.

Sebaik sahaja respons anda sedia, anda boleh menghantarnya melalui aliran (stream) menggunakan kaedah seperti build() dan try_send().

Hyperlane memberikan anda dua cara untuk bekerja. Gunakan panggilan kaedah apabila anda memerlukan kawalan eksplisit. Gunakan makro atribut apabila anda mahukan kod yang kemas dan pantas.

Project Code: https://github.com/hyperlane-dev/hyperlane

Source: https://dev.to/tengxgfyrz67s/request-and-response-deep-dive-1j1b