HTTP क्रियाओं में हमारे "यूनिफ़ॉर्म इंटरफ़ेस" बाधा का एक बड़ा हिस्सा होता है और हमें संज्ञा-आधारित संसाधन के लिए क्रिया समकक्ष प्रदान करता है। प्राथमिक या सबसे अधिक उपयोग की जाने वाली HTTP क्रियाएं (या विधियाँ, जैसा कि उन्हें ठीक से कहा जाता है) POST, GET, PUT, PATCH और DELETE हैं। ये क्रमशः बनाने, पढ़ने, अपडेट करने और हटाने (या CRUD) संचालन के अनुरूप हैं। कई अन्य क्रियाएं भी हैं, लेकिन कम बार उपयोग की जाती हैं। उन कम-बार-बार होने वाले तरीकों में से, विकल्प और सिर दूसरों की तुलना में अधिक बार उपयोग किए जाते हैं।
क्रिया विधि को HTTP क्रियाओं के रूप में नामित किया जा सकता है जैसे गेट, पोस्ट, पुट, पैच या डिलीट। हालांकि, हम अधिक पठनीयता के लिए HTTP क्रियाओं के साथ किसी भी प्रत्यय को जोड़ सकते हैं। उदाहरण के लिए, गेट विधि 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 क्रिया को परिभाषित करने का दूसरा तरीका Http क्रिया विशेषता का उपयोग करना है . हम आसानी से किसी विशिष्ट HTTP विधि का उपयोग करके कॉल करने के लिए ASP.NET वेब API पद्धति तक पहुंच को प्रतिबंधित कर सकते हैं ।
उदाहरण
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] विशेषता से सजाया गया है।