'기본' 라우팅에는 'MapRoute'를 사용하고 'DefaultApi' 라우팅에는 'MapHttpRoute'를 사용하는 이유는 무엇인가요?
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}"
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
ASP.NET 위에 웹 API를 사용하는 경우 궁극적으로 둘 다 동일한 기본 ASP.NET 경로 테이블에서 작동하지만 올바르게 지적한 바와 같이 사용자 관점에서 보면 경로를 등록하기 위해 두 가지 다른 메서드를 호출하게 됩니다.
라우팅은 이와 같이 설계되었기 때문에 ASP.NET 외부에서 호스팅할 때 웹 API가 System.Web에 의존할 필요가 없습니다.
웹 API는 MVC, 웹 폼 또는 ASP.NET 위에 있는 것이 아니라는 점을 명심하세요. 웹 컨텍스트(ASP.NET) 내에서 호스팅할 수도 있지만 자체 호스팅(콘솔, WPF 등)하거나 메모리에서 호스팅할 수도 있습니다(포트 사용 없이 경량 엔드투엔드 테스트에 유용함).