>백엔드 개발 >C++ >단일 ASP.NET 웹 API 컨트롤러에서 여러 GET 메서드를 처리하는 방법은 무엇입니까?

단일 ASP.NET 웹 API 컨트롤러에서 여러 GET 메서드를 처리하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-05 09:43:08385검색

How to Handle Multiple GET Methods in a Single ASP.NET Web API Controller?

ASP.NET Web API에서 여러 GET 메서드가 있는 단일 컨트롤러

경로를 통해 요청과 일치하는 여러 작업의 오류 극복이 가능합니다. WebApiConfig의 정의.

제공된 솔루션은 다양한 GET 방법을 지원하기 위해 경로 조합을 사용하도록 권장합니다. 표준 REST 방법:

routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}");
routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });

이를 입증하려면 다음 테스트 컨트롤러를 고려하세요.

public class TestController : ApiController
{
    public string Get()
    {
        return string.Empty;
    }

    public string Get(int id)
    {
        return string.Empty;
    }

    public string GetAll()
    {
        return string.Empty;
    }

    [HttpPost]
    public void Post([FromBody] string value)
    {
    }

    [HttpPut]
    public void Put(int id, [FromBody] string value)
    {
    }

    [HttpDelete]
    public void Delete(int id)
    {
    }
}

지정된 경로를 사용하면 이 컨트롤러는 다음 요청을 처리할 수 있습니다.

GET /Test
GET /Test/1
GET /Test/GetAll
POST /Test
PUT /Test/1
DELETE /Test/1

이 솔루션은 여러 GET 메서드를 사용하더라도 RESTful 엔드포인트가 그대로 유지되어 HTTP 표준에 대한 유연성과 준수를 제공합니다. GET 작업이 'Get'으로 시작하지 않는 경우 명확성을 위해 HttpGet 속성을 추가할 수 있습니다.

위 내용은 단일 ASP.NET 웹 API 컨트롤러에서 여러 GET 메서드를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.