asp.net-mvc - 호출 - c# web api




기존 ASP.NET MVC 4 웹 응용 프로그램 프로젝트에 웹 API를 추가하는 방법은 무엇입니까? (5)

Visual Studio 2012에서 개발 된 ASP.NET MVC 4 웹 응용 프로그램 프로젝트에 ASP.NET 웹 API 를 추가하고 싶습니다. 프로젝트에 작동중인 웹 API를 추가하기 위해 수행해야하는 단계는 무엇입니까? 나는 ApiController에서 파생 된 컨트롤러가 필요하다는 것을 알고 있지만, 그것이 내가 아는 전부이다.

자세한 내용을 제공해야하는지 알려주세요.


2013 년 11 월 22 일 업데이트 된 최신 WebApi 패키지입니다.

Install-Package Microsoft.AspNet.WebApi

원본 답변 (이전 WebApi 패키지)

Install-Package AspNetWebApi

자세한 details .


MVC 및 웹 API 프로젝트를 병합하기 전에 여러 프로젝트를 분리하여 단점 및 장점 에 대해 읽으 합니다. 하나의 매우 중요한 것 (내 자신)은 완전히 다른 인증 시스템입니다.

MVC와 웹 API 모두에서 인증 된 요청을 사용해야하는 경우 웹 API는 RESTful (세션, 간단한 HTTP 요청 등을 유지할 필요가 없음)이지만 MVC는 그렇지 않다는 것을 기억해야합니다.

구현의 차이점을 살펴 보려면 템플릿에서 Visual Studio 2013의 두 가지 프로젝트 (MVC 용 및 Web API 용)를 만드십시오. 만드는 동안 "개별 인증"을 설정하는 것을 잊지 마십시오. AuthencationController에는 많은 차이가 있습니다.

따라서 유의하십시오.


아래 이미지와 같이 nuget에서 설치할 수 있습니다.

또는 패키지 관리자 콘솔에서 다음 명령 줄을 실행하십시오.

Install-Package Microsoft.AspNet.WebApi

위의 솔루션은 완벽하게 작동합니다. 아래 그림과 같이 프로젝트 템플릿을 선택하는 동안 Web API 옵션을 선택하는 것을 선호합니다.

참고 : 이 솔루션은 Visual Studio 2013 이상에서 작동합니다. 원래 질문은 2012 년에 요청되었으며 2016 년이므로 Visual Studio 2013 이상의 솔루션이 추가되었습니다.


내 MVC 5 프로젝트에 WebAPI를 추가하려면.

  1. NuGet 패키지 관리자 열기 및 실행

    PM> Install-Package Microsoft.AspNet.WebApi
    
  2. 이미없는 경우 System.Web.Routing, System.Web.Net 및 System.Net.Http dll에 대한 참조를 추가하십시오.

  3. 컨트롤러를 마우스 오른쪽 버튼으로 클릭하고 폴더> 새 항목 추가> 웹> 웹 API 컨트롤러 추가를 클릭합니다.

  4. VS.에 따라 Web.config가 수정됩니다.

  5. 이미 존재하지 않으면 Application_Start () {} 메소드를 추가하십시오.

    protected void Application_Start()
    {
        //this should be line #1 in this method
        GlobalConfiguration.Configure(WebApiConfig.Register);
    }
    
  6. 다음 클래스 추가 (global.asax.cs 파일에 추가)

    public static class WebApiConfig
    {
         public static void Register(HttpConfiguration config)
         {
             // Web API routes
             config.MapHttpAttributeRoutes();
    
             config.Routes.MapHttpRoute(
                 name: "DefaultApi",
                 routeTemplate: "api/{controller}/{id}",
                 defaults: new { id = RouteParameter.Optional }
             );
         }
     }
    
  7. 그에 따라 웹 API 방법을 수정하십시오.

    namespace <Your.NameSpace.Here>
    {
        public class VSController : ApiController
        {
            // GET api/<controller>   : url to use => api/vs
            public string Get()
            {
                return "Hi from web api controller";
            }
    
            // GET api/<controller>/5   : url to use => api/vs/5
            public string Get(int id)
            {
                return (id + 1).ToString();
            }
        }
    }
    
  8. 재구성 및 테스트

  9. 간단한 HTML 페이지 만들기

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>    
        <script src="../<path_to_jquery>/jquery-1.9.1.min.js"></script>
        <script type="text/javascript">
            var uri = '/api/vs';
            $(document).ready(function () {
                $.getJSON(uri)
                .done(function (data) {
                    alert('got: ' + data);
                });
    
                $.ajax({
                    url: '/api/vs/5',
                    async: true,
                    success: function (data) {
                        alert('seccess1');
                        var res = parseInt(data);
                        alert('got res=' + res);
                    }
                });
            });
        </script>
    </head>
    <body>
    ....
    </body>
    </html>
    




visual-studio-2012