ASP.NET MVC 컨트롤러를 사용하면 데이터를 다른 형식으로 노출 할 수 있습니다. AspNetWebAPI는 API를 만들기 위해 명시 적으로 설계되었지만 MVC 컨트롤러를 사용하여 쉽게 수행 할 수 있으며 어떤 경우에 기존 MVC 컨트롤러보다 나은지 명확하지 않습니다. WebApi의 이점이 분명하고 내 응용 프로그램에 다른 복잡성 계층을 추가 할 가치가있는 시나리오에 관심이 있습니다.
질문 : MVC와 관련하여 asp.net WebApi를 사용할 때의 장점 및 / 또는 단점은 무엇입니까?
답변
WebApi를 사용하면 WCF 또는 SOAP와 같은 공식 서비스를 통하지 않고 HTTP를 통해 노출 될 수있는 서비스를 작성할 수 있습니다. 또 다른 차이점은 WebApi가 Http 프로토콜을 사용하여 진정으로 일급 Http 시민으로 만드는 방식에 있습니다.
업데이트 : ASP.NET Core, Web API가 MVC 프로젝트 유형에 통합되었습니다. ApiController
클래스는로 통합되는 Controller
클래스입니다. 자세한 내용은 https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
비교, 토론 및 자습서의 관련 링크 :
- MVC5 및 WebApi 프로젝트
- ASP.NET MVC와 ASP.NET 웹 API의 차이점
- ASP.NET Core 에는 MVC, 웹 API 데모가 포함되어 있습니다.
- ASP.NET 웹 API 자습서 시작
답변
WebAPI는 OData를 추출하므로 OData 사용의 모든 이점을 얻을 수 있습니다. 예를 들어 WebAPI를 사용하면 다음을 얻을 수 있습니다.
- $ filter, $ top, $ orderby 등과 같은 쿼리 옵션
- 전통적인 MVC 컨트롤러를 사용하면 직접 구현해야합니다.
- 형식의 표준화
- RESTful API의 기본 형식을 이해하는 OData 클라이언트가 있습니다.
답변
Asp.Net 웹 API VS Asp.Net MVC
1 . Asp.Net MVC는 뷰와 데이터를 모두 반환하는 웹 응용 프로그램을 만드는 데 사용되지만 Asp.Net Web API는 뷰가 아닌 데이터 만 반환하는 쉽고 간단한 방법으로 완전한 HTTP 서비스를 만드는 데 사용됩니다.
2 . 웹 API는 .NET Framework를 통해 REST-ful 서비스를 구축하는 데 도움이되고 컨텐츠 협상도 지원합니다 (클라이언트가 수용 할 수있는 최상의 응답 형식 데이터 결정에 관한 것입니다. JSON, XML, ATOM 또는 기타 형식화 된 데이터 일 수 있음) ), 자체 호스팅은 MVC에 없습니다.
3 . 또한 웹 API는 JSON, XML 또는 요청의 Accept 헤더를 기반으로하는 다른 형식으로 데이터를 반환하므로 걱정하지 않아도됩니다. MVC는 JsonResult를 사용하여 JSON 형식의 데이터 만 반환합니다.
4 . Web API에서는 요청이 HTTP 동사를 기반으로하는 조치에 맵핑되지만 MVC에서는 조치 이름에 맵핑됩니다.
도 5 . Asp.Net Web API는 새로운 프레임 워크이며 핵심 ASP.NET 프레임 워크의 일부입니다. 웹 API에 존재하는 모델 바인딩, 필터, 라우팅 및 기타 MVC 기능은 MVC와 다르며 새로운 System.Web.Http 어셈블리에 존재합니다. MVC에서는 이러한 기능이 System.Web.Mvc에 있습니다. 따라서 Web API는 Asp.Net과 함께 독립형 서비스 계층으로도 사용할 수 있습니다.
도 6 . 단일 프로젝트에서 Web API와 MVC 컨트롤러를 혼합하여 JSON, XML 또는 기타 형식으로 데이터를 반환하고 완전한 HTTP 서비스를 구축 할 수있는 고급 AJAX 요청을 처리 할 수 있습니다. 일반적으로이를 웹 API 자체 호스팅이라고합니다.
도 7 . MVC와 Web API 컨트롤러를 혼합하고 권한 부여를 구현하려는 경우 MVC 용 필터와 Web API 용 필터를 각각 두 개씩 만들어야합니다.
도 8 . 또한 웹 API는 경량 아키텍처이며 웹 응용 프로그램을 제외하고 스마트 폰 앱과 함께 사용할 수도 있습니다.
오리지널 소스는 여기
답변
유사점
1) 둘 다 비동기 요청에 대해 ihhtphandler에서 상속하므로 기본적으로 apicontroller 또는 mvc 컨트롤러는 모두 웹의 래퍼입니다.
차이점 : 1) mvc 컨트롤러는 정의를 통과하면 사용 된 인터페이스와 기본 코드 수를 볼 수 있으며 웹 API는 더 가벼운 컨트롤러이며 전달 된 매개 변수로 요청을 구별합니다 (예 : 우리도 변경할 수 있습니다!) )
2) MVC 컨트롤러에는 뷰, 액션 결과, 자바 스크립트 결과 등의 기능이 너무 많지만 웹 API에는 JSON 또는 XML이 있습니다.
3) API는 뷰에 의존하지 않고 MVC 컨트롤러가 뷰와 긴밀하게 통합되어이를 지원할 수없는 곳에서 독립적으로 호스팅 할 수있는 Restful (get, post, put, delete, options) 서비스를 구현하기위한 것입니다.
답변
답변
어느 시점에서 ASP.NET MVC를 함께 잊어 버리고 싶을 수도 있습니다. .NET 개발자이지만 예를 들어 Angular를 사용하여 단일 페이지 응용 프로그램을 빌드하려는 경우 ASP.NET MVC와 함께 제공되는 불필요한 부풀림없이 RESTful 서비스 (WebAPI)의 이점을 원할 것입니다.
답변
ASP.NET MVC와 ASP.NET 웹 API는 서로 다른 용도로 사용됩니다.
ASP.NET
ASP.NET은 웹 응용 프로그램을 만들기위한 세 가지 프레임 워크 인 Web Forms, ASP.NET MVC 및 ASP.NET Web Pages를 제공합니다. 세 가지 프레임 워크는 모두 안정적이고 성숙되어 있으며 그 중 하나를 사용하여 훌륭한 웹 응용 프로그램을 만들 수 있습니다. 어떤 프레임 워크를 선택하든 ASP.NET의 모든 이점과 기능을 어디서나 얻을 수 있습니다.
각 프레임 워크는 다른 개발 스타일을 대상으로합니다. 선택하는 것은 프로그래밍 자산 (지식, 기술 및 개발 경험), 작성중인 애플리케이션 유형 및 익숙한 개발 방식의 조합에 따라 다릅니다. 향후 릴리스의 ASP.NET에서는 세 가지 프레임 워크가 모두 지원, 업데이트 및 개선 될 예정입니다.
MVC
ASP.NET MVC는 패턴을 기반으로 역동적 인 웹 사이트를 구축 할 수있는 강력하고 패턴 기반의 방법을 제공하여 관심사를 명확하게 분리하고 즐겁고 민첩한 개발을 위해 마크 업을 완벽하게 제어 할 수 있습니다. ASP.NET MVC에는 최신 웹 표준을 사용하는 정교한 응용 프로그램을 만들기위한 빠르고 TDD 친화적 인 개발을 가능하게하는 많은 기능이 포함되어 있습니다.
웹 API
ASP.NET 웹 API는 브라우저 및 모바일 장치를 포함하여 광범위한 클라이언트에 도달하는 HTTP 서비스를 쉽게 구축 할 수있는 프레임 워크입니다. ASP.NET Web API는 .NET Framework에서 RESTful 응용 프로그램을 구축하기위한 이상적인 플랫폼입니다.
http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html에서 더 많은 양식을 읽을 수 있습니다
.