2012-12-26 4 views
1

내 응용 프로그램에서 MVC 및 WebAPI 기능을 모두 사용할 계획입니다. 간단한 MVC CRUD 컨트롤러로 구현 된 관리 사이트가있을 것이며 원격 클라이언트 및 향후 단일 페이지 앱에서 RESTful API를 호출해야 할 수도 있습니다. 반환 유형에서만 다른 매우 유사한 클래스를 작성하는 데 익숙하지 않습니다. MVC 컨트롤러는 래핑 된 데이터를 단순히 반환하는 View 및 WebAPI 컨트롤러로 래핑 된 데이터를 반환합니다. 너무 많은 코드를 반복하지 않고도 목표를 달성하는 가장 좋은 방법은 무엇입니까?WebApi 및 MVC 컨트롤러

답변

5

내 의견으로는 WebAPI를 사용하는 경우 표준 MVC 컨트롤러를 CRUD에 사용해서는 안됩니다. API 컨트롤러는 CRUD 작업을 처리해야하며 MVC 컨트롤러는 뷰를 반환해야합니다. 이 경로를 이동하여

, 그것으로 당신이 당신의 뷰에 데이터를 표시 할 수 있습니다 방법 당신에게 다른 몇 가지 옵션을 제공합니다 :

전통

좀 더 "전통을 고수하려는 경우 "경로를 사용하면 MVC 컨트롤러에서 WebAPI 컨트롤러 서버 측을 호출하고 모델 객체에 수분을 공급하고 강력한 형식의 뷰를 반환 할 수 있습니다. HttpClient 클래스 또는 WebClient 클래스를 사용하여 API 호출을 만들고 응답을 deserialize하여이 작업을 수행 할 수 있습니다.

한 페이지 당신이, 당신이 제안 danludwig 무엇을 시도 할 수 있습니다 더 "현대"경로를 시도하고 단일 페이지 응용 프로그램의 자세한 내용을 구축하려는 경우

. 이 시나리오에서 MVC 컨트롤러는 API 호출을 수행하고 DOM을 업데이트하기 위해 클라이언트 측 프레임 워크에 의존하는 HTML + JavaScript보기 만 반환합니다. require + backbone + knockback/knockout 스택은 시작하기에 좋은 곳이지만 약간의 학습 곡선이 있습니다.

어느 쪽이든 정말로 CRUD 논리는 한 곳에서만 사용해야하며 API에 속한다고 생각합니다.

1

MVC 컨트롤러가 강력한 형식의 viewmodels을 반환하지 않는 것이 한 가지 방법입니다. 대신 백본 또는 녹아웃과 같은 것을 사용하여 Api 액션 메소드를 호출하고 DOM을 채울 수있는 일반 HTML + 자바 스크립트를 반환 할 수 있습니다.