ASP.Net MVC4에서“웹 API”란 정확히 무엇입니까?


15

웹 API가 무엇인지 알고 있습니다.
API를 여러 언어로 작성했습니다 (MVC3 포함).
ASP.Net에서도 잘 연습하고 있습니다.
방금 MVC4에 "Web API"가 있음을 발견했으며 비디오 예제를 거치지 않으면 정확히 무엇인지에 대한 좋은 설명을 찾을 수 없습니다.
필자의 과거 경험에서 Microsoft 기술 (특히 ASP.Net)은 간단한 개념을 취하여 모든 것을 "보다 쉽게"만들 수있는 쓸모없는 오버 헤드로 감싸는 경향이 있습니다.
누군가 MVC4의 웹 API가 정확히 무엇인지 설명해 주시겠습니까? 왜 필요한가요? 왜 내 API를 작성할 수 없습니까?


3
새로운 웹 API 프레임 워크 에 대해 이야기하고 있습니까? 그것은 MVC와는 별개입니다. 그것이 의미하는 바라면 Rick Strahl 의이 블로그 게시물 을 살펴보십시오 .
Oded

1
@Oded : 당신은 이것을 대답으로 넣어야합니다.
James P. Wright

Web API에 대한 가장 멋진 점은 (허용 된 답변 또는 위 링크의 어느 곳에도 표시되지 않음) IQueryable <>을 반환하면 웹 메서드가 자동으로 OData 쿼리 구문을 지원한다는 것입니다! -일반 ASP.NET 4.5 스택에서 "Web API"및 "SignalR"은 WCF를 "바꾸기"입니다 (WCF 위에 구축되었는지 여부는 확실하지 않지만 WCF는 모든 블록 다이어그램에서 제거되어 교체되었습니다) "웹 API"및 "SignalR").
BrainSlugs83

Why can't I just write my own API?일반 ASP.NET MVC 만 있다면? 할 수 있습니다. ASP.NET MVC 웹 API는 쉽게 사용할 수 있도록 추가 기능을 제공합니다. 아래를 봐주세요.
Jim G.

답변:


16

ASP.NET 웹 API는 REST 또는 RPC에 관계없이 HTTP 서비스 를 빌드하기위한 "비 선택적"프레임 워크 입니다. RFC 2616 (HTTP Spec)의 Microsoft 최고의 구현입니다.

확실히 당신은 자신의 API를 만들 수 있지만 ASP.NET 웹 API를 만들 수 있습니다

  • 레고 같은 모듈을 HTTP 파이프 라인에 추가 할 수 있는 Russian Doll 모델을 기반으로 구축
  • HTTP를 일류 시민으로 만들어 모든 공통 헤더를 강력하게 입력하고 (이름 값뿐만 아니라) 구문 분석하는 데 도움을줍니다.
  • ASP.NET (IIS) 호스팅 또는 자체 호스팅을 모두 허용
  • 콘텐츠 협상, 미디어 유형 지원 ...
  • 위에서 아래로 비동기
  • HttpClient를 사용하는 클라이언트에 대해 비슷한 접근 방식을 사용합니다.

6

Microsoft 의 새로운 웹 API 는 이름에 따라 REST에 구부러진 웹 액세스 가능한 API 작성에 대한 모든 것을 제안합니다.

Rick Strahl은 최근 블로그에 대해 블로그를 작성했으며 MVC와 웹 API의 사용시기를 잘 분석했습니다.

내장 된 콘텐츠 협상, 내장 된 여러 형식 등.


6

요약하자면, ASP.NET 웹 API는 REST 를 .NET에서 일류 시민으로 만들고 있으며 WCF는 실제로 수용 할 수 없었습니다. 아시다시피 ASP.NET 웹 APIfor building web APIs.NET Framework의 최상위 프레임 워크입니다.

웹 개발자로서 우리가 겪었던 가장 큰 좌절 중 하나는 WCF의 끝없는 구성에 직면하는 것이 었습니다. WCF는 훌륭하지만 WCF 웹 API 프레임 워크 이후 REST를 받아들이지 않았습니다 . REST 스타터 키트라는 것이 있었지만 결국 죽었습니다.

그러나 ASP.NET Web API는 브라우저 및 모바일 장치와 같은 광범위한 클라이언트에 도달하는 HTTP 서비스를 쉽게 구축 할 수있는 차세대 프레임 워크입니다. .NET Framework에서 RESTful 애플리케이션을 빌드하기위한 이상적인 플랫폼입니다. 자세한 내용과 유용한 블로그 게시물을 보려면 ASP.NET 웹 API 블로거 페이지를 방문 하십시오.


1
Web API의 역사를 조사하면 WCF에서 시작되었습니다.
SASS_Shooter

글쎄, 그것은 구성을 쉽게하고 앱 개발을 간소화하기 위해 중요한 기능으로 가볍게 대체합니다.
Yusubov

@Yusobov : 이것은 사실이 아닙니다-Odata 호환 REST API를 구축하는 데 훌륭한 WCF 데이터 서비스도 있습니다. 프로덕션 환경에서 사용하고 있으며 일단 설정되면 실제로 잘 작동합니다. 이것의 유일한 문제는 ASP.NET 웹 API보다 설정하기가 훨씬 어렵다는 것입니다.
Adrian Grigore

1

ASP.NET 웹 API는 브라우저 및 모바일 장치를 포함하여 광범위한 클라이언트에 도달하는 HTTP 서비스를 쉽게 구축 할 수있는 프레임 워크입니다.

ASP.NET Web API는 .NET Framework에서 RESTful 응용 프로그램을 구축하기위한 이상적인 플랫폼입니다.

http://www.asp.net/web-api


편집하다:

특히 ASP.NET 웹 API에는 다음이 포함됩니다.

  1. IIS에서 서비스를 호스팅하도록 선택한 경우 오버 헤드가 감소 된 간소화 된 ASP.NET 파이프 라인
  2. 클라이언트가 웹 API에 쉽게 연결할 수있게하는 HttpClient

나는 그 것들을 스스로 읽을 수 있습니다. 내 질문은 요점이 뭐야? Web API와 일반 MVC를 사용하지만 ViewResults 대신 JsonResults를 사용하는 것의 차이점은 무엇입니까?
James P. Wright

1. MVC 4 이전에는 아무런 문제없이 JSONResult를 반환 할 수있었습니다. MVC 4는 단순히 그 기능을 유지하고, 더 쉽게하기 위해 다른 도우미 클래스를 포함하며, ASP.NET 파이프 라인을 간소화하여 ViewResults를 반환 할 필요가 없다는 것을 알면 오버 헤드를 줄입니다.
Jim G.

1
또한 WCF 웹 API를 효과적으로 업데이트하기 때문에 IIS에 얽매이지 않습니다. 원하는 경우 ASP.NET 웹 API 서비스를 자체 호스팅 할 수 있습니다. wcf.codeplex.com/…
Jim G.

-2

오늘날 웹 기반 애플리케이션으로는 고객에게 도달하기에 충분하지 않습니다. 사람들은 매우 똑똑하고 일상 생활에서 아이폰, 모바일, 태블릿 등의 기기를 사용하고 있습니다. 이 장치에는 인생을 쉽게하기위한 많은 응용 프로그램이 있습니다. 실제로 우리는 웹에서 앱 세계로 나아가고 있습니다. 따라서 서비스 데이터를 브라우저 및 모든 최신 장치 앱에 빠르고 간단하게 노출하려면 브라우저 및 모든 장치와 호환되는 API가 있어야합니다.


이것은 이전의 4 가지 답변에서 제시되고 설명 된 점들에 비해 실질적인 어떤 것도 추가하지 않는 것 같습니다
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.