HTTP 동사는 "균일한 인터페이스" 제약 조건의 주요 부분을 구성하고 명사 기반 리소스에 대응하는 작업을 제공합니다. 기본 또는 가장 일반적으로 사용되는 HTTP 동사(또는 적절하게 호출되는 메서드)는 POST, GET, PUT, PATCH 및 DELETE입니다. 이들은 각각 생성, 읽기, 업데이트 및 삭제(또는 CRUD) 작업에 해당합니다. 다른 동사들도 많이 있지만 덜 자주 사용됩니다. 빈도가 낮은 방법 중에서 OPTIONS 및 HEAD가 다른 방법보다 더 자주 사용됩니다.
작업 메서드는 Get, Post, Put, Patch 또는 Delete와 같은 HTTP 동사로 이름을 지정할 수 있습니다. 그러나 가독성을 높이기 위해 HTTP 동사로 접미사를 추가할 수 있습니다. 예를 들어 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 동사를 정의하는 다른 방법은 Http 동사 속성을 사용하는 것입니다. . 특정 HTTP 메서드를 사용하여 호출할 ASP.NET Web 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); } } }
이제 post request를 사용하여 위의 action 메소드에 접근을 시도해보자.
FetchStudentsList 작업 메서드에 게시 요청을 보낼 때 405 메서드가 허용되지 않음이 표시됨을 알 수 있습니다. [HttpGet] 속성으로 데코레이션되어 있기 때문에 응답합니다.