การโยงเป็นกระบวนการในการตั้งค่าพารามิเตอร์เมื่อ Web API เรียกใช้เมธอด controlleraction
เมธอด Web API พร้อมพารามิเตอร์ประเภทต่างๆ และวิธีปรับแต่งกระบวนการผูกข้อมูล
หากพารามิเตอร์เป็นประเภทธรรมดา เช่น int, bool, double เป็นต้น Web API จะพยายามรับค่าจาก URI (ไม่ว่าจะจากข้อมูลเส้นทางหรือจากสตริงการสืบค้น)
หากพารามิเตอร์เป็นประเภทที่ซับซ้อน เช่น ลูกค้า พนักงาน ฯลฯ Web APIFramework จะพยายามรับค่าจากเนื้อหาคำขอ
เราสามารถเปลี่ยนพฤติกรรมเริ่มต้นของกระบวนการผูกพารามิเตอร์ได้โดยใช้แอตทริบิวต์ [FromBody] และ [FromUri]
จากยูริ −
หากพารามิเตอร์เป็นประเภทธรรมดา Web Api จะพยายามรับค่าจาก URI
.NET ประเภท Primitive เช่น double,DateTime,GUID string ชนิดใดก็ได้ที่สามารถแปลงจากประเภท String
ตัวอย่าง
public Student Get(int id){}
จากร่างกาย
หากพารามิเตอร์ประเภท Complex แล้ว Web Api จะพยายามผูกค่าจากเนื้อหาข้อความ
ตัวอย่าง
Public Student Post(Employee employee){}
[จากอูริ]
หากต้องการบังคับให้ Web API อ่านประเภทที่ซับซ้อนจาก URI ให้เพิ่มแอตทริบิวต์ [FromUri] ให้กับพารามิเตอร์
ใช้แอตทริบิวต์ [FromUri] เพื่อบังคับให้ Web Api รับค่าของประเภทที่ซับซ้อนจาก QueryString
ตัวอย่าง
public Student Get([FromUri] Employee employee) public HttpResponseMessage Get([FromUri] Employee employee) { ... }
[จากร่างกาย]
ใช้แอตทริบิวต์ [FromBody] เพื่อรับค่าของประเภท Primitive จากเนื้อหาคำขอ ตรงข้ามกับค่าเริ่มต้น
ไม่ ไม่อนุญาตให้ใช้ FormBody หลายอันในการดำเนินการครั้งเดียว
หากต้องการบังคับให้ Web API อ่านประเภทง่าย ๆ จากเนื้อหาคำขอ ให้เพิ่ม [FromBody]
ในตัวอย่างนี้ Web API จะใช้ตัวจัดรูปแบบประเภทสื่อเพื่ออ่านค่าของชื่อจากเนื้อหาคำขอ
ตัวอย่าง
public Student Post([FromBody] string name]){...} public HttpResponseMessage Post([FromBody] string name) { ... }