2016-07-13 3 views
0

MVC App과 WebApi가있는 MVC 프로젝트가 있습니다. TMVC에서 함수를 WebApi 함수로 변환하는 방법

WebApi는 MVC 응용 프로그램에서 비즈니스 로직을 수행하고 객체를 반환하는 데 사용됩니다. Chrom 또는 무언가로 웹 API에 액세스하려고 시도한 적이 없었습니다. 하지만 이제 우리는 HTTPA 프로토콜을 통해 모든 고객이 WebApi에 액세스 할 수 있다고 결정했습니다. 즉, 일반 WebApi 프로젝트처럼 Chrome에 액세스 할 수 있어야합니다.

WebApi를 모두에게 공개하려면 어떻게해야합니까? 함수 위에 TAG를 추가해야합니까? 여기

내가 당신이 때문에 [HttpGet]를 사용할 필요가 귀하의 경우에 당신과 함께 컨트롤러 액션 메소드의 예를 [HttpPost],[HttpGet],[HttpPut] 등 액션 동사를 추가 할 필요가 있다고 생각으로

public class CustomerApiController : ApiController 
{ 

[LocalizationWebApi] 
[SessionControlWebApi] 
[ScreenAccess(SCREEN_ACCESS.Show)] 
public JsonResult<CustomerOrderFormSearchResult> CustomerOrderFormSearch(CustomerOrderFormSearchModel Model_) 
{ 

    CustomerOrderFormSearchResult ret_ = new CustomerOrderFormSearchResult(); 
    ret_.Errors.Add(ResourceExtensions.Language("SHARED_MESSAGE_SESSIONCLOSED")); 
     return Json(ret_, IgnoreEntityProxyContractResolver.Create()); 
} 

} 
+0

질문이 올바르게 표시되면 브라우저를 사용하여 웹 API에 액세스하고 싶습니까? 그렇다면 경로를 올바르게 구성하십시오. 적절한 경우 프로젝트를 실행하고 경로에 액세스하도록 구성되었을 수 있습니다. –

+0

예,하지만 [HttpPost]를 추가해야합니까 –

+1

예 추가해야합니다. 그러나 귀하의 경우에는 [HttpGet] –

답변

2

공개해야 내 ApiController의 중요한 부분입니다 비행기 추방입니다. 컨트롤러를 다음과 같이 수정하십시오.

public class CustomerApiController : ApiController 
{ 
[LocalizationWebApi] 
[HttpGet] 
[SessionControlWebApi] 
[ScreenAccess(SCREEN_ACCESS.Show)] 
public JsonResult<CustomerOrderFormSearchResult> CustomerOrderFormSearch(CustomerOrderFormSearchModel Model_) 
{ 
     CustomerOrderFormSearchResult ret_ = new CustomerOrderFormSearchResult(); 
     ret_.Errors.Add(ResourceExtensions.Language("SHARED_MESSAGE_SESSIONCLOSED")); 
     return OK(ret_); 
     //Better to return Ok in your search result 
     // If you want validation use NotFound() or something slimier to that 
} 
} 

API의 경로 구성에 항상주의하십시오.

관련 문제