HTTP वर्ब्स हमारे "यूनिफॉर्म इंटरफेस" कंस्ट्रेंट का एक प्रमुख हिस्सा हैं और हमें नाउन-आधारित रिसोर्स के लिए एक्शन समकक्ष प्रदान करते हैं। प्राथमिक या सबसे अधिक उपयोग किए जाने वाले HTTP वर्ब्स (या मेथड्स, जैसा कि उन्हें ठीक से कहा जाता है) POST, GET, PUT, PATCH, और DELETE हैं। ये क्रमशः क्रिएट, रीड, अपडेट, और डिलीट (या CRUD) ऑपरेशन से मेल खाते हैं। कई अन्य वर्ब्स भी हैं, लेकिन उनका उपयोग कम होता है। उन कम-लगातार मेथड्स में से, OPTIONS और HEAD का उपयोग दूसरों की तुलना में अधिक बार किया जाता है।
एक्शन मेथड का नाम HTTP वर्ब्स की तरह रखा जा सकता है जैसे Get, Post, Put, Patch या Delete। हालांकि, हम बेहतर पठनीयता के लिए HTTP वर्ब्स के साथ कोई भी सफ़िक्स जोड़ सकते हैं। उदाहरण के लिए, Get मेथड GetAllStudents() या कोई अन्य नाम हो सकता है जो Get से शुरू होता है।
उदाहरण
public class DemoController : ApiController
{
public IHttpActionResult GetAllStudents()
{
// छात्रों का डेटा प्राप्त करता है
return Ok();
}
public IHttpActionResult Post([FromBody]Student student)
{
// छात्र डेटा इन्सर्ट करता है
return Ok();
}
public IHttpActionResult Put([FromBody]Student student)
{
// छात्र डेटा अपडेट करता है
return Ok();
}
public IHttpActionResult Delete(int id)
{
// छात्र डेटा डिलीट करता है
return Ok();
}
}
एक्शन मेथड के HTTP वर्ब को नाम के बजाय परिभाषित करने का दूसरा तरीका 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 students = new List
{
new Student { Id = 1, Name = "Mark" },
new Student { Id = 2, Name = "John" }
};
return Ok(students);
}
}
}

अब आइए उपरोक्त एक्शन मेथड को POST रिक्वेस्ट का उपयोग करके एक्सेस करने का प्रयास करें।

हम देख सकते हैं कि जब हम FetchStudentsList एक्शन मेथड पर POST रिक्वेस्ट भेजते हैं तो हमें 405 Method Not Allowed रिस्पॉन्स मिलता है क्योंकि यह [HttpGet] एट्रिब्यूट से सजाया गया है।