IT박스

MVC 5 프로젝트와 Web Api 프로젝트의 차이점

itboxs 2020. 6. 26. 19:06
반응형

MVC 5 프로젝트와 Web Api 프로젝트의 차이점


ASP.NET MVCWeb API를 처음 사용 하고 기본 사항을 얻으려고합니다. AFAIK에는 VS 2013에 이름이 MVC, Web API이라는 프로젝트 템플릿이 Both of them together있습니다.

튜토리얼을 살펴본 결과 MVC를 단독으로 사용하거나 웹 API 템플릿을 사용하여 API를 만들 수 있다는 것을 알게되었습니다.

그렇다면 아키텍처사용 에 따른 차이점은 무엇입니까 ?


기본적으로 Web API컨트롤러는 MVC컨트롤러 HttpMessageResponse이며 대신에 응답의 기본 유형으로 사용 됩니다 ActionResponse. 그들은 대부분의 다른 측면에서 동일합니다. 프로젝트 유형의 주요 차이점은 프로젝트 유형은 웹 사이트에 필요한 MVC Applicationdefault 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


내 두 센트 ...

  1. 에서 ASP.Net MVC - MVC의의가 Controller되어야 하는지를 결정한다 View- 즉, 컨트롤러가 요청을 할 때 사용자가 (현재 시나리오 또는 상황에 따라) "를 참조하십시오"해야하는지 결정한다.
  2. 에서 ASP.Net 웹 양식ASPX페이지가 요청을 할 때 사용자가 "표시"해야하는지 결정한다.
  3. 그러나 Web API 에서는 사용자가 요청을 할 때 "보아야 할"사항을 결정하기 위해 Web API 기능에 대한 제어 / 권한이 없습니다.

웹 API는 웹 사이트에만 국한된 기술이 아닙니다. 웹 사이트뿐만 아니라 다양한 목적으로도 사용할 수 있습니다. 그래서 그것은의 의미를 모른다rendering

추가 자료

  1. 오늘날 웹 솔루션 계획 : Web Forms, ASP.NET MVC, Web API 및 OWIN.
  2. WCF 또는 ASP.NET 웹 API? 주제에 대한 내 두 센트
  3. 차세대 .NET – ASP.NET vNext
  4. ASP.NET MVC 6 시작하기

컨트롤러 클래스에서 파생 된 MVC 컨트롤러. Mvc에서는 뷰를 반환 할 수 있습니다. Mvc 아키텍처는 응용 프로그램을 만드는 데 사용됩니다. 그러나 웹 API는 다양한 응용 프로그램에 데이터를 제공하는 데 사용됩니다.

Web Api는 Api 컨트롤러에서 구동되며보기를 반환하지 않습니다.

참고 : MVC 컨트롤러에서 Web Api를 작성할 수도 있지만 JsonResult 또는 기타 웹 API 지원 리턴 유형으로 결과를 리턴해야합니다.


여기에 이미 제공된 답변 외에도 ApiController에서 상속하고 Http 동사 POST로 작업을 수행하는 컨트롤러는 하나의 [FromBody] 입력 매개 변수 만 가질 수 있습니다. MVC 컨트롤러를 사용하는 경우 ( 'Controller'에서 파생) 많은 사후 입력 매개 변수를 가질 수 있습니다.

참고 URL : https://stackoverflow.com/questions/22589245/difference-between-mvc-5-project-and-web-api-project

반응형