2012-03-19 5 views
1

웹 API를 살펴보고 asp.net mvc와 웹 API가 어떻게 작동 할 수 있는지, 잘 작동하는지 잘 모르겠습니다.내 웹 API를 사용해야할까요?

클라이언트 측에서 백본을 구현하고 싶지만 서버 측에서 ApiController 또는 일반 컨트롤러를 구현해야하는지 잘 모르겠습니다.

내가하는 일 (현재 사용자/계정 정보 얻기)은 기본 ApiController가베이스 컨트롤러와 동일한 기능을 일부 수행하므로 중복 기능이 있지만 확실하지는 않습니다 다른 거래가 어떻게 되겠습니까?

아니면 웹 앱용 컨트롤러에 제공하고 제공하고자하는 공공 서비스 용 ApiController 만 만들겠습니까?

+0

마지막으로 무엇을 했습니까? –

답변

1

API를 계획하려면 ApiController를 사용하십시오. 웹 UI 작업을 수행하는 경우 클래식 컨트롤러를 사용하십시오. 그것이 둘 모두를위한 것입니다.

0

이것은 정확히 내가 백본보다 Knockout.js를 사용한다는 것을 제외하면 내가 현재있는 상황입니다. Create and Edit와 각보기 내에서 JSON의 Ajaxing을 서버로 전달하는 매우 복잡한 Knockout.js UI에 대한 뷰가 있습니다.

MVC3에서는 동일한 컨트롤러 내에서 뷰를 렌더링 한 수많은 JsonResult 메서드를 사용하고있었습니다. 나는 MVC4의 RC를 실험 해 왔으며 Ajax 요청을 위해 API 컨트롤러를 사용하는 "루트"(ho ho)로 내려갈지를 숙고했다. 강하게 입력 된 HTTP 클래스와 JSON.NET이 더 통합되어 있다는 사실을 좋아하지만이 단계에서 내 자신의 내부 용으로 별도의 API 컨트롤러를 사용하는 최종 결과가 옳다는 느낌을주지 못했습니다. 당신과 마찬가지로, 나는 보안에 관한 많은 중복으로 끝을 맺었으며, 단순히 콘텐츠 유형별로 관련 논리가 무엇인지 구분하는 것이 일을 더 깔끔하게하는 대신 혼란스럽게 만들었다.

현재 변덕스러운 것으로 알려졌지만 현재 컨텍스트에는 표준 MVC 컨트롤러를 계속 사용할 계획이지만 끝나면 반짝이는 새 웹 API를 사용할 기회가 있습니다. 공개 API를 노출합니다.

+0

나는 또한 지금까지 표준 MVC 컨트롤러를 사용 해왔다. – adriaanp

+0

어떻게하면 보안과 관련된 중복으로 끝났습니까? 콘텐츠 유형의 문제점은 무엇입니까? JSON을 지원하지 않습니까? – georgiosd

+0

나는 MvcApplication의 핸들러가 아니라 AbstractController의 Initalize에서 요청 인증을하고 ApiController는 Controller와는 다른 스택의 일부로, 최선의 선택은 HttpContext를 공유 도우미 메소드에 전달하는 것이 었습니다. 좋아해. –

관련 문제