กริยา HTTP ประกอบด้วยส่วนสำคัญของข้อจำกัด "อินเทอร์เฟซที่เหมือนกัน" ของเรา และให้การดำเนินการกับทรัพยากรแบบคำนามแก่เรา กริยา HTTP หลักหรือที่ใช้บ่อยที่สุด (หรือวิธีการตามที่เรียกอย่างถูกต้อง) คือ POST, GET, PUT, PATCH และ DELETE สิ่งเหล่านี้สอดคล้องกับการสร้าง อ่าน อัปเดต และลบ (หรือ CRUD) ตามลำดับ มีกริยาอื่น ๆ อีกจำนวนหนึ่งเช่นกัน แต่มีการใช้ไม่บ่อยนัก ในบรรดาวิธีที่ไม่บ่อยเหล่านั้น OPTIONS และHEAD ถูกใช้บ่อยกว่าวิธีอื่นๆ
วิธีดำเนินการสามารถตั้งชื่อเป็นกริยา HTTP ได้ เช่น Get, Post, Put, Patch หรือ Delete อย่างไรก็ตาม เราสามารถผนวกส่วนต่อท้ายด้วยกริยา HTTP เพื่อให้อ่านง่ายขึ้น Forexample วิธี Get อาจเป็น GetAllStudents() หรือชื่ออื่นที่ขึ้นต้นด้วย Get
ตัวอย่าง
public class DemoController : ApiController{ public IHttpActionResult GetAllStudents(){ //Retrieves students data return Ok(); } public IHttpActionResult Post([FromBody]Student student){ //Insert student data return Ok(); } public IHttpActionResult Put([FromBody]Student student){ //Update student data return Ok(); } public IHttpActionResult Delete(int id){ //Delete student data return Ok(); } }
อีกวิธีหนึ่งในการกำหนด Http Verb ของวิธีการดำเนินการแทนการตั้งชื่อคือการใช้ Http Verb Attribute . เราสามารถจำกัดการเข้าถึงเมธอด ASP.NET Web API ที่จะเรียกโดยใช้เมธอด HTTP เฉพาะได้อย่างง่ายดาย .
ตัวอย่าง
using DemoWebApplication.Models; using System.Collections.Generic; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [HttpGet] //HttpVerb Attribute public IHttpActionResult FetchStudentsList(){ List<Student> students = new List<Student>{ new Student{ Id = 1, Name = "Mark" }, new Student{ Id = 2, Name = "John" } }; return Ok(students); } } }
ตอนนี้ให้เราลองเข้าถึงวิธีการดำเนินการข้างต้นโดยใช้คำขอโพสต์
เราจะเห็นว่าเมื่อเราส่งคำขอโพสต์ไปยังวิธีการทำงานของ FetchStudentsList เราได้รับ ไม่อนุญาตวิธี 405 ตอบกลับเนื่องจากมีการตกแต่งแอตทริบิวต์ [HttpGet]