Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ตัวจัดการข้อความในตัวใน Asp.Net webAPI C # คืออะไร


ตัวจัดการข้อความคือคลาสที่ได้รับการร้องขอ HTTP และส่งคืน HTTPresponse ตัวจัดการข้อความมาจากคลาส HttpMessageHandler ที่เป็นนามธรรม ตัวจัดการข้อความเปิดโอกาสให้เราประมวลผล แก้ไข หรือปฏิเสธคำขอที่เข้ามาก่อนที่จะถึง HttpControllerDispatcher

ตัวจัดการข้อความถูกดำเนินการเร็วกว่ามากในไปป์ไลน์การประมวลผลคำขอ ดังนั้นจึงเป็นสถานที่ที่ดีเยี่ยมในการนำข้อกังวลแบบตัดขวางมาใช้ใน Web API MessageHandlers เป็นเพียงสายโซ่ของคลาส (อาจเป็นระบบที่กำหนดหรือกำหนดโดยเรา) ซึ่งอยู่ถัดจากกระบวนการคำขอ HTTP และการตอบสนองผ่านไปป์ไลน์

ตัวจัดการข้อความในตัวใน Asp.Net webAPI C # คืออะไร

ตัวอย่างเช่น คำขอ HTTP หนึ่งรายการมาถึงเซิร์ฟเวอร์ HTTP ตอนนี้คำขอจะถูกส่งต่อไปยัง HandlerA และหลังจากประมวลผลใน HandlerA แล้ว คำขออาจไปที่ HandlerB และอื่นๆ ข้อดีคือเราสามารถทำงานเฉพาะภายในตัวจัดการแต่ละคนได้ตามความต้องการทางธุรกิจของเรา

ใน ASP.NET Web API Framework มีตัวจัดการข้อความอยู่สองประเภท มีดังนี้

  • ตัวจัดการข้อความ HTTP ฝั่งเซิร์ฟเวอร์
  • ตัวจัดการข้อความ HTTP ฝั่งไคลเอ็นต์

ตัวจัดการข้อความฝั่งเซิร์ฟเวอร์

ทางฝั่งเซิร์ฟเวอร์ ไปป์ไลน์ Web API ใช้ตัวจัดการข้อความในตัว -

  • เซิร์ฟเวอร์ HTTP ได้รับการร้องขอจากโฮสต์
  • HttpRoutingDispatcher ส่งคำขอตามเส้นทาง
  • HttpControllerDispatcher ส่งคำขอไปยังตัวควบคุม Web API

เราสามารถเพิ่มตัวจัดการแบบกำหนดเองให้กับไปป์ไลน์ได้ ตัวจัดการข้อความเหมาะสำหรับ crosscutting ความกังวลที่ทำงานที่ระดับข้อความ HTTP (แทนที่จะเป็นตัวควบคุม) ตัวอย่างเช่น ตัวจัดการข้อความอาจ −

  • อ่านหรือแก้ไขส่วนหัวของคำขอ
  • เพิ่มหัวข้อการตอบกลับในการตอบกลับ
  • ตรวจสอบคำขอก่อนที่จะไปถึงผู้ควบคุม

ตัวจัดการข้อความ HTTP ฝั่งไคลเอ็นต์

ในฝั่งไคลเอ็นต์ HttpClient คลาสใช้ตัวจัดการข้อความเพื่อดำเนินการตามคำขอ ตัวจัดการเริ่มต้นคือ HttpClientHandler ซึ่งส่งคำขอผ่านเครือข่ายและรับการตอบกลับจากเซิร์ฟเวอร์ เราสามารถแทรกตัวจัดการข้อความที่กำหนดเองลงในไปป์ไลน์ของไคลเอ็นต์ได้