답변:
기본적으로 Web API
컨트롤러는 MVC
컨트롤러 HttpMessageResponse
이며 대신에 응답의 기본 유형으로 사용 됩니다 ActionResponse
. 그들은 대부분의 다른 측면에서 동일합니다. 프로젝트 유형의 주요 차이점은 프로젝트 유형은 웹 사이트에 필요한 MVC Application
default CSS
, JavaScript
파일 및 기타 리소스와 같은 웹 특정 항목을 추가 한다는 점 입니다. API에는 필요하지 않습니다.
MVC는 웹 사이트를 만드는 데 사용됩니다. 이 경우 Controllers
일반적으로 View
브라우저 요청에 HTML 응답을 반환 합니다. 반면에 웹 API는 일반적으로 다른 응용 프로그램에서 사용하도록 만들어졌습니다. 다른 응용 프로그램이 데이터 / 기능에 액세스 할 수있게하려면이 액세스를 용이하게하는 웹 API를 만들 수 있습니다. 예를 들어 Facebook에는 앱 개발자가 앱을 사용하는 사용자에 대한 정보에 액세스 할 수 있도록 API가 있습니다. 웹 API는 공공 소 비용 일 필요는 없습니다. 자신의 응용 프로그램을 지원하는 API를 만들 수도 있습니다. 예를 들어, MVC 웹 사이트의 AJAX 기능을 지원하기 위해 웹 API를 만들었습니다.
Microsoft는 다른 템플릿을 제공하는 방식을 변경했습니다. 이제는 프로젝트 유형마다 다른 템플릿을 사용하는 대신 개발자가 필요에 따라 동일한 프로젝트 내에서 ASP.NET 기술을 혼합하도록 권장합니다. Microsoft는 이것을 호출합니다 vNext
.
업데이트 : ASP.NET Core의 경우 Web API가 MVC 6 프로젝트 유형 ApiController
에 통합되었으며 클래스가 클래스에 통합되었습니다 Controller
. 자세한 내용은 https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
내 두 센트 ...
Controller
되어야 하는지를 결정한다 View
- 즉, 컨트롤러가 요청을 할 때 사용자가 (현재 시나리오 또는 상황에 따라) "를 참조하십시오"해야하는지 결정한다.ASPX
페이지가 요청을 할 때 사용자가 "표시"해야하는지 결정한다.웹 API는 웹 사이트에만 국한된 기술이 아닙니다. 웹 사이트뿐만 아니라 다양한 목적으로도 사용할 수 있습니다. 그래서 그것은의 의미를 모른다rendering
추가 자료
컨트롤러 클래스에서 파생 된 MVC 컨트롤러. Mvc에서는 뷰를 반환 할 수 있습니다. Mvc 아키텍처는 응용 프로그램을 만드는 데 사용됩니다. 그러나 웹 API는 다양한 응용 프로그램에 데이터를 제공하는 데 사용됩니다.
Web Api는 Api 컨트롤러에서 구동되며보기를 반환하지 않습니다.
참고 : MVC 컨트롤러에서 Web Api를 작성할 수도 있지만 JsonResult 또는 기타 웹 API 지원 리턴 유형으로 결과를 리턴해야합니다.