실습: 하나의 ASP.NET: ASP.NET Web Forms, MVC 및 Web API 통합
ASP.NET MVC, Web API 등과 같은 특수 기술을 사용하여 웹 사이트, 앱 및 서비스를 빌드하기 위한 프레임워크입니다. 확장 ASP.NET 창설 이후 보아왔으며 이러한 기술을 통합해야 한다는 명시적인 필요성으로 인해 최근 One ASP.NET 대한 노력이 있었습니다.
Visual Studio 2013 애플리케이션을 빌드하고 한 프로젝트에서 모든 ASP.NET 기술을 사용할 수 있는 새로운 통합 프로젝트 시스템을 도입했습니다. 이 기능은 프로젝트 시작 시 하나의 기술을 선택하고 이를 고수할 필요가 없으며, 대신 한 프로젝트 내에서 여러 ASP.NET 프레임워크를 사용하도록 권장합니다.
모든 샘플 코드 및 코드 조각은 에서 사용할 수 있는 웹 캠프 교육 키트에 https://aka.ms/webcamps-training-kit포함되어 있습니다.
개요
목표
이 실습 랩에서는 다음 방법을 알아봅니다.
- One ASP.NET 프로젝트 형식을 기반으로 웹 사이트 만들기
- 동일한 프로젝트에서 MVC 및 Web API와 같은 다양한 ASP.NET 프레임워크 사용
- ASP.NET 애플리케이션의 기본 구성 요소 식별
- ASP.NET 스캐폴딩 프레임워크를 활용하여 컨트롤러 및 뷰를 자동으로 만들어 모델 클래스에 따라 CRUD 작업을 수행합니다.
- 각 작업에 적합한 도구를 사용하여 컴퓨터 및 사람이 읽을 수 있는 형식으로 동일한 정보 세트를 노출합니다.
사전 요구 사항
이 실습 랩을 완료하려면 다음이 필요합니다.
설치 프로그램
이 실습 랩에서 연습을 실행하려면 먼저 환경을 설정해야 합니다.
- Windows Explorer 열고 랩의 원본 폴더로 이동합니다.
- Setup.cmd를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택하여 환경을 구성하고 이 랩에 대한 Visual Studio 코드 조각을 설치하는 설치 프로세스를 시작합니다.
- 사용자 계정 컨트롤 대화 상자가 표시되면 계속할 작업을 확인합니다.
참고
설치 프로그램을 실행하기 전에 이 랩에 대한 모든 종속성을 확인했는지 확인합니다.
코드 조각 사용
랩 문서 전체에서 코드 블록을 삽입하라는 지시가 표시됩니다. 편의를 위해 이 코드의 대부분은 Visual Studio Code 코드 조각으로 제공되므로 수동으로 추가할 필요가 없도록 Visual Studio 2013 내에서 액세스할 수 있습니다.
참고
각 연습에는 연습의 Begin 폴더에 있는 시작 솔루션이 함께 제공되므로 다른 연습과 독립적으로 각 연습을 따를 수 있습니다. 연습 중에 추가된 코드 조각은 이러한 시작 솔루션에서 누락되었으며 연습을 완료할 때까지 작동하지 않을 수 있습니다. 연습의 소스 코드 내에서 해당 연습의 단계를 완료한 결과 코드가 포함된 Visual Studio 솔루션이 포함된 End 폴더도 찾을 수 있습니다. 이 실습 랩을 통해 작업할 때 추가 도움이 필요한 경우 이러한 솔루션을 지침으로 사용할 수 있습니다.
연습
이 실습 랩에는 다음 연습이 포함되어 있습니다.
이 랩을 완료하는 예상 시간: 60분
참고
Visual Studio를 처음 시작할 때 미리 정의된 설정 컬렉션 중 하나를 선택해야 합니다. 미리 정의된 각 컬렉션은 특정 개발 스타일과 일치하도록 설계되었으며 창 레이아웃, 편집기 동작, IntelliSense 코드 조각 및 대화 상자 옵션을 결정합니다. 이 랩의 절차에서는 일반 개발 설정 컬렉션을 사용할 때 Visual Studio에서 지정된 작업을 수행하는 데 필요한 작업을 설명합니다. 개발 환경에 대해 다른 설정 컬렉션을 선택하는 경우 고려해야 하는 단계에 차이가 있을 수 있습니다.
연습 1: 새 Web Forms 프로젝트 만들기
이 연습에서는 One ASP.NET 통합 프로젝트 환경을 사용하여 Visual Studio 2013 새 Web Forms 사이트를 만듭니다. 이를 통해 동일한 애플리케이션에서 Web Forms, MVC 및 Web API 구성 요소를 쉽게 통합할 수 있습니다. 그런 다음 생성된 솔루션을 탐색하고 해당 부분을 식별합니다. 마지막으로 웹 사이트가 작동하는 것을 볼 수 있습니다.
작업 1 – One ASP.NET 환경을 사용하여 새 사이트 만들기
이 작업에서는 One ASP.NET 프로젝트 형식에 따라 Visual Studio에서 새 웹 사이트를 만들기 시작합니다. 하나의 ASP.NET 모든 ASP.NET 기술을 통합하고 원하는 대로 혼합하고 일치시킬 수 있는 옵션을 제공합니다. 그런 다음 애플리케이션 내에서 나란히 라이브되는 Web Forms, MVC 및 Web API의 다양한 구성 요소를 인식합니다.
웹용 Visual Studio Express 2013을 열고 파일 | 을 선택합니다. 새 프로젝트... 새 솔루션을 시작합니다.
새 프로젝트 만들기
새 프로젝트 대화 상자의 Visual C# | 아래에서 ASP.NET 웹 애플리케이션을 선택합니다. 웹 탭에서 .NET Framework 4.5가 선택되어 있는지 확인합니다. 프로젝트 이름을 MyHybridSite로 지정하고 위치를 선택하고 확인을 클릭합니다.
새 ASP.NET 웹 애플리케이션 프로젝트 만들기
새 ASP.NET 프로젝트 대화 상자에서 Web Forms 템플릿을 선택하고 MVC 및 Web API 옵션을 선택합니다. 또한 인증 옵션이 개별 사용자 계정으로 설정되어 있는지 확인합니다. 계속하려면 확인 을 클릭합니다.
Web API 및 MVC 구성 요소를 포함하여 Web Forms 템플릿을 사용하여 새 프로젝트 만들기
이제 생성된 솔루션의 구조를 탐색할 수 있습니다.
생성된 솔루션 탐색
- 계정: 이 폴더에는 애플리케이션의 사용자 계정을 등록, 로그인 및 관리할 웹 양식 페이지가 포함되어 있습니다. 이 폴더는 Web Forms 프로젝트 템플릿을 구성하는 동안 개별 사용자 계정 인증 옵션을 선택하면 추가됩니다.
- 모델: 이 폴더에는 애플리케이션 데이터를 나타내는 클래스가 포함됩니다.
- 컨트롤러 및 뷰: 이러한 폴더는 ASP.NET MVC 및 ASP.NET Web API 구성 요소에 필요합니다. 다음 연습에서는 MVC 및 Web API 기술을 살펴봅니다.
- Default.aspx, Contact.aspx 및 About.aspx 파일은 애플리케이션과 관련된 페이지를 빌드하기 위한 시작점으로 사용할 수 있는 미리 정의된 웹 양식 페이지입니다. 이러한 파일의 프로그래밍 논리는 "코드 숨김" 파일이라고 하는 별도의 파일에 있습니다. 이 파일에는 ".aspx.vb" 또는 ".aspx.cs" 확장명(사용된 언어에 따라 다름)이 있습니다. 코드 숨김 논리는 서버에서 실행되며 페이지에 대한 HTML 출력을 동적으로 생성합니다.
- Site.Master 및 Site.Mobile.Master 페이지는 애플리케이션의 모든 페이지의 모양과 느낌과 표준 동작을 정의합니다.
Default.aspx 파일을 두 번 클릭하여 페이지의 내용을 탐색합니다.
Default.aspx 페이지 탐색
참고
파일 맨 위에 있는 Page 지시문은 Web Forms 페이지의 특성을 정의합니다. 예를 들어 MasterPageFile 특성은 master 페이지의 경로를 지정합니다. 이 경우 Site.Master 페이지 및 Inherits 특성은 상속할 페이지의 코드 숨김 클래스를 정의합니다. 이 클래스는 CodeBehind 특성에 의해 결정되는 파일에 있습니다.
asp:Content 컨트롤은 페이지의 실제 콘텐츠(텍스트, 태그 및 컨트롤)를 보유하며 master 페이지의 asp:ContentPlaceHolder 컨트롤에 매핑됩니다. 이 경우 페이지 콘텐츠는 Site.Master 페이지에 정의된 MainContent 컨트롤 내에서 렌더링됩니다.
App_Start 폴더를 확장하고 WebApiConfig.cs 파일을 확인합니다. Visual Studio는 One ASP.NET 템플릿으로 프로젝트를 구성할 때 Web API를 포함했기 때문에 생성된 솔루션에 해당 파일을 포함시켰습니다.
WebApiConfig.cs 파일을 엽니다. WebApiConfig 클래스에서 웹 API 컨트롤러에 HTTP 경로를 매핑하는 Web API와 연결된 구성을 찾습니다.
public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
RouteConfig.cs 파일을 엽니다. RegisterRoutes 메서드 내에서 MVC와 연결된 구성을 찾습니다. 이 구성은 HTTP 경로를 MVC 컨트롤러에 매핑합니다.
public static void RegisterRoutes(RouteCollection routes) { var settings = new FriendlyUrlSettings(); settings.AutoRedirectMode = RedirectMode.Permanent; routes.EnableFriendlyUrls(settings); routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { action = "Index", id = UrlParameter.Optional } ); }
작업 2 – 솔루션 실행
이 작업에서는 생성된 솔루션을 실행하고, URL 재작성 및 기본 제공 인증과 같은 앱 및 일부 기능을 살펴봅니다.
솔루션을 실행하려면 F5 키를 누르거나 도구 모음에 있는 시작 단추를 클릭합니다. 애플리케이션 홈페이지가 브라우저에서 열립니다.
Web Forms 페이지가 호출되고 있는지 확인합니다. 이렇게 하려면 주소 표시줄의 URL에 /contact.aspx 를 추가하고 Enter 키를 누릅니 다.
친숙한 URL
참고
볼 수 있듯이 URL은 /contact로 변경됩니다. ASP.NET 4부터 URL 라우팅 기능이 Web Forms 추가되었으므로 대신 와 같은
http://www.mysite.com/products/software
http://www.mysite.com/products.aspx?category=software
URL을 작성할 수 있습니다. 자세한 내용은 URL 라우팅을 참조하세요.이제 애플리케이션에 통합된 인증 흐름을 탐색합니다. 이렇게 하려면 페이지의 오른쪽 위 모서리에서 등록 을 클릭합니다.
새 사용자 등록
등록 페이지에서 사용자 이름 및 암호를 입력한 다음 등록을 클릭합니다.
등록 페이지
애플리케이션이 새 계정을 등록하고 사용자가 인증됩니다.
사용자가 인증됨
Visual Studio로 돌아가기 Shift + F5를 눌러 디버깅을 중지합니다.
연습 2: 스캐폴딩을 사용하여 MVC 컨트롤러 만들기
이 연습에서는 Visual Studio에서 제공하는 ASP.NET 스캐폴딩 프레임워크를 활용하여 한 줄의 코드를 작성하지 않고 작업 및 Razor 뷰가 있는 ASP.NET MVC 5 컨트롤러를 만들어 CRUD 작업을 수행합니다. 스캐폴딩 프로세스는 Entity Framework Code First를 사용하여 SQL 데이터베이스에서 데이터 컨텍스트 및 데이터베이스 스키마를 생성합니다.
Entity Framework Code First 정보
EF(Entity Framework)는 관계형 스토리지 스키마를 사용하여 직접 프로그래밍하는 대신 개념적 애플리케이션 모델을 사용하여 프로그래밍하여 데이터 액세스 애플리케이션을 만들 수 있는 ORM(개체 관계형 매퍼)입니다.
Entity Framework Code First 모델링 워크플로를 사용하면 사용자 고유의 도메인 클래스를 사용하여 쿼리, 변경 내용 추적 및 업데이트 함수를 수행할 때 EF가 사용하는 모델을 나타낼 수 있습니다. Code First 개발 워크플로를 사용하면 데이터베이스를 만들거나 스키마를 지정하여 애플리케이션을 시작할 필요가 없습니다. 대신 애플리케이션에 가장 적합한 도메인 모델 개체를 정의하는 표준 .NET 클래스를 작성할 수 있으며 Entity Framework에서 데이터베이스를 만듭니다.
참고
여기에서 Entity Framework에 대해 자세히 알아볼 수 있습니다.
작업 1 – 새 모델 만들기
이제 스캐폴딩 프로세스에서 MVC 컨트롤러 및 뷰를 만드는 데 사용하는 모델이 될 Person 클래스를 정의합니다. 먼저 Person 모델 클래스를 만들고 컨트롤러의 CRUD 작업은 스캐폴딩 기능을 사용하여 자동으로 만들어집니다.
Source/Ex2-MvcScaffolding/Begin 폴더에 있는 웹용 Visual Studio Express 2013 및 MyHybridSite.sln 솔루션을 엽니다. 또는 이전 연습에서 얻은 솔루션을 계속 진행할 수 있습니다.
솔루션 탐색기MyHybridSite 프로젝트의 Models 폴더를 마우스 오른쪽 단추로 클릭하고 추가 | 클래스...를 선택합니다.
Person 모델 클래스 추가
새 항목 추가 대화 상자에서 파일 이름을 Person.cs로 지정하고 추가를 클릭합니다.
Person 모델 클래스 만들기
Person.cs 파일의 내용을 다음 코드로 바꿉니다. Ctrl + S를 눌러 변경 내용을 저장합니다.
(코드 조각 - BringingTogetherOneAspNet - Ex2 - PersonClass)
namespace MyHybridSite.Models { public class Person { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } }
솔루션 탐색기MyHybridSite 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드를 선택하거나 Ctrl + Shift + B를 눌러 프로젝트를 빌드합니다.
작업 2 - MVC 컨트롤러 만들기
이제 Person 모델을 만들었으므로 Entity Framework에서 ASP.NET MVC 스캐폴딩을 사용하여 Person에 대한 CRUD 컨트롤러 작업 및 뷰를 만듭니다.
솔루션 탐색기MyHybridSite 프로젝트의 Controllers 폴더를 마우스 오른쪽 단추로 클릭하고 추가 | 를 선택합니다. 새 스캐폴드된 항목....
새 스캐폴드된 컨트롤러 만들기
스캐폴드 추가 대화 상자에서 Entity Framework를 사용하여 보기가 있는 MVC 5 컨트롤러를 선택한 다음 추가를 클릭합니다.
보기 및 Entity Framework가 있는 MVC 5 컨트롤러 선택
MvcPersonController를 컨트롤러 이름으로 설정하고, 비동기 컨트롤러 작업 사용 옵션을 선택하고, Person(MyHybridSite.Models)을 모델 클래스로 선택합니다.
스캐폴딩을 사용하여 MVC 컨트롤러 추가
데이터 컨텍스트 클래스에서 새 데이터 컨텍스트...를 클릭합니다.
새 데이터 컨텍스트 만들기
새 데이터 컨텍스트 대화 상자에서 새 데이터 컨텍스트의 이름을 PersonContext로 지정하고 추가를 클릭합니다.
새 PersonContext 형식 만들기
추가를 클릭하여 스캐폴딩이 있는 사람용 새 컨트롤러를 만듭니다. 그러면 Visual Studio에서 컨트롤러 작업, 개인 데이터 컨텍스트 및 Razor 뷰를 생성합니다.
스캐폴딩을 사용하여 MVC 컨트롤러를 만든 후
Controllers 폴더에서 MvcPersonController.cs 파일을 엽니다. CRUD 작업 메서드가 자동으로 생성됩니다.
... // POST: /MvcPerson/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Create([Bind(Include="Id,Name,Age")] Person person) { if (ModelState.IsValid) { db.People.Add(person); await db.SaveChangesAsync(); return RedirectToAction("Index"); } return View(person); } // GET: /MvcPerson/Edit/5 public async Task<ActionResult> Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Person person = await db.People.FindAsync(id); if (person == null) { return HttpNotFound(); } return View(person); } ...
참고
Visual Studio는 이전 단계의 스캐폴딩 옵션에서 비동기 컨트롤러 작업 검사 사용 상자를 선택하여 Person 데이터 컨텍스트에 대한 액세스를 포함하는 모든 작업에 대해 비동기 작업 메서드를 생성합니다. 요청이 처리되는 동안 웹 서버가 작업을 수행하지 못하도록 차단하지 않도록 CPU 바인딩되지 않은 장기 실행 요청에 비동기 작업 메서드를 사용하는 것이 좋습니다.
작업 3 – 솔루션 실행
이 작업에서는 솔루션을 다시 실행하여 Person 에 대한 보기가 예상대로 작동하는지 확인합니다. 새 사용자를 추가하여 데이터베이스에 성공적으로 저장되었는지 확인합니다.
F5 키를 눌러 솔루션을 실행합니다.
/MvcPerson으로 이동합니다. 사용자 목록을 보여 주는 스캐폴드된 보기가 표시되어야 합니다.
새로 만들기를 클릭하여 새 사용자를 추가합니다.
스캐폴드된 MVC 보기로 이동
만들기 보기에서 사용자의 이름과나이를 입력하고 만들기를 클릭합니다.
새 사용자 추가
새 사용자가 목록에 추가됩니다. 요소 목록에서 세부 정보를 클릭하여 사용자의 세부 정보 보기를 표시합니다. 그런 다음 세부 정보 보기에서 목록으로 돌아가기를 클릭하여 목록 보기로 돌아갑니다.
사용자의 세부 정보 보기
삭제 링크를 클릭하여 사용자를 삭제합니다. 삭제 보기에서 삭제를 클릭하여 작업을 확인합니다.
사람 삭제
Visual Studio로 돌아가기 Shift + F5를 눌러 디버깅을 중지합니다.
연습 3: 스캐폴딩을 사용하여 Web API 컨트롤러 만들기
Web API 프레임워크는 ASP.NET Stack의 일부이며 HTTP 서비스를 더 쉽게 구현하고 일반적으로 RESTful API를 통해 JSON 또는 XML 형식의 데이터를 보내고 받을 수 있도록 설계되었습니다.
이 연습에서는 ASP.NET 스캐폴딩을 다시 사용하여 Web API 컨트롤러를 생성합니다. 이전 연습에서 동일한 Person 및 PersonContext 클래스를 사용하여 동일한 사람 데이터를 JSON 형식으로 제공합니다. 동일한 ASP.NET 애플리케이션 내에서 여러 가지 방법으로 동일한 리소스를 노출하는 방법을 확인할 수 있습니다.
작업 1 – Web API 컨트롤러 만들기
이 작업에서는 사용자 데이터를 JSON과 같은 컴퓨터 소모성 형식으로 노출하는 새 Web API 컨트롤러 를 만듭니다.
아직 열리지 않은 경우 Visual Studio Express 2013 for Web을 열고 Source/Ex3-WebAPI/Begin 폴더에 있는 MyHybridSite.sln 솔루션을 엽니다. 또는 이전 연습에서 얻은 솔루션을 계속 진행할 수 있습니다.
참고
연습 3에서 시작 솔루션으로 시작하는 경우 Ctrl + Shift + B 를 눌러 솔루션을 빌드합니다.
솔루션 탐색기MyHybridSite 프로젝트의 Controllers 폴더를 마우스 오른쪽 단추로 클릭하고 추가 | 를 선택합니다. 새 스캐폴드된 항목....
새 스캐폴드 컨트롤러 만들기
스캐폴드 추가 대화 상자의 왼쪽 창에서 Web API를 선택한 다음, 중간 창에서 Entity Framework를 사용하여 작업과 함께 Web API 2 컨트롤러를 선택한 다음 추가를 클릭합니다.
를
작업 및 Entity Framework를 사용하여 Web API 2 컨트롤러 선택
ApiPersonController를 컨트롤러 이름으로 설정하고, 비동기 컨트롤러 작업 사용 옵션을 선택하고, 모델 및 데이터 컨텍스트 클래스로 Person(MyHybridSite.Models) 및 PersonContext(MyHybridSite.Models)를 각각 선택합니다. 그런 다음, 추가를 클릭합니다.
스캐폴딩을 사용하여 Web API 컨트롤러 추가
그런 다음 Visual Studio는 데이터로 작업할 4개의 CRUD 작업을 사용하여 ApiPersonController 클래스를 생성합니다.
스캐폴딩을 사용하여 Web API 컨트롤러를 만든 후
ApiPersonController.cs 파일을 열고 GetPeople 작업 메서드를 검사합니다. 이 메서드는 People 데이터를 가져오기 위해 PersonContext 형식의 db 필드를 쿼리합니다.
// GET api/ApiPerson public IQueryable<Person> GetPeople() { return db.People; }
이제 메서드 정의 위의 주석을 확인합니다. 다음 작업에서 사용할 이 작업을 노출하는 URI를 제공합니다.
// GET api/ApiPerson public IQueryable<Person> GetPeople() { return db.People; }
참고
기본적으로 Web API는 MVC 컨트롤러와의 충돌을 방지하기 위해 /api 경로에 대한 쿼리를 catch하도록 구성됩니다. 이 설정을 변경해야 하는 경우 ASP.NET Web API 라우팅을 참조하세요.
작업 2 – 솔루션 실행
이 작업에서는 인터넷 Explorer F12 개발자 도구를 사용하여 Web API 컨트롤러의 전체 응답을 검사합니다. 네트워크 트래픽을 캡처하여 애플리케이션 데이터에 대한 더 많은 인사이트를 얻는 방법을 확인할 수 있습니다.
참고
Visual Studio 도구 모음에 있는 시작 단추에서 인터넷 Explorer 선택되어 있는지 확인합니다.
F12 개발자 도구에는 이 실습 랩에서 다루지 않는 다양한 기능이 있습니다. 자세한 내용은 F12 개발자 도구 사용을 참조하세요.
F5 키를 눌러 솔루션을 실행합니다.
참고
이 작업을 올바르게 수행하려면 애플리케이션에 데이터가 있어야 합니다. 데이터베이스가 비어 있는 경우 연습 2의 작업 3으로 돌아가서 MVC 보기를 사용하여 새 사용자를 만드는 방법에 대한 단계를 수행할 수 있습니다.
브라우저에서 F12 키를 눌러 개발자 도구 패널을 엽니다. Ctrl + 4를 누르거나 네트워크 아이콘을 클릭한 다음 녹색 화살표 단추를 클릭하여 네트워크 트래픽 캡처를 시작합니다.
Web API 네트워크 캡처 시작
브라우저 주소 표시줄의 URL에 api/ApiPerson 을 추가합니다. 이제 ApiPersonController에서 응답의 세부 정보를 검사합니다.
Web API를 통해 사람 데이터 검색
참고
다운로드가 완료되면 다운로드한 파일을 사용하여 작업을 수행하라는 메시지가 표시됩니다. 개발자 도구 창을 통해 응답 콘텐츠를 watch 수 있도록 대화 상자를 열어 둡니다.
이제 응답 본문을 검사합니다. 이렇게 하려면 세부 정보 탭을 클릭한 다음 응답 본문을 클릭합니다. 다운로드한 데이터가 Person 클래스에 해당하는 Id, Name 및 Age 속성이 있는 개체 목록임을 검사 수 있습니다.
Web API 응답 본문 보기
작업 3 – Web API 도움말 페이지 추가
Web API를 만들 때 다른 개발자가 API를 호출하는 방법을 알 수 있도록 도움말 페이지를 만드는 것이 유용합니다. 설명서 페이지를 수동으로 만들고 업데이트할 수 있지만 유지 관리 작업을 수행할 필요가 없도록 자동으로 생성하는 것이 좋습니다. 이 작업에서는 Nuget 패키지를 사용하여 솔루션에 대한 Web API 도움말 페이지를 자동으로 생성합니다.
Visual Studio의 도구 메뉴에서 NuGet 패키지 관리자를 선택한 다음 패키지 관리자 콘솔을 클릭합니다.
패키지 관리자 콘솔 창에서 다음 명령을 실행합니다.
Install-Package Microsoft.AspNet.WebApi.HelpPage
참고
Microsoft.AspNet.WebApi.HelpPage 패키지는 필요한 어셈블리를 설치하고 Areas/HelpPage 폴더 아래의 도움말 페이지에 대한 MVC 뷰를 추가합니다.
도움말 페이지 영역
기본적으로 도움말 페이지에는 설명서에 대한 자리 표시자 문자열이 있습니다. XML 설명서 주석을 사용하여 설명서를 만들 수 있습니다. 이 기능을 사용하려면 Areas/HelpPage/App_Start 폴더에 있는 HelpPageConfig.cs 파일을 열고 다음 줄의 주석 처리를 제거합니다.
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
솔루션 탐색기프로젝트 MyHybridSite를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 빌드 탭을 클릭합니다.
빌드 탭
출력에서 XML 설명서 파일을 선택합니다. 편집 상자에 App_Data/XmlDocument.xml입력합니다.
빌드 탭의 출력 섹션
Ctrl + S를 눌러 변경 내용을 저장합니다.
Controllers 폴더에서 ApiPersonController.cs 파일을 엽니다.
GetPeople 메서드 서명과 // GET api/ApiPerson 주석 사이에 새 줄을 입력한 다음 세 개의 슬래시를 입력합니다.
참고
Visual Studio는 메서드 설명서를 정의하는 XML 요소를 자동으로 삽입합니다.
요약 텍스트와 GetPeople 메서드의 반환 값을 추가합니다. 다음과 같이 표시됩니다.
// GET api/ApiPerson /// <summary> /// Documentation for 'GET' method /// </summary> /// <returns>Returns a list of people in the requested format</returns> public IQueryable<Person> GetPeople() { return db.People; }
F5 키를 눌러 솔루션을 실행합니다.
주소 표시줄의 URL에 /help 를 추가하여 도움말 페이지로 이동합니다.
ASP.NET Web API 도움말 페이지
참고
페이지의 기본 콘텐츠는 컨트롤러별로 그룹화된 API 테이블입니다. 테이블 항목은 IApiExplorer 인터페이스를 사용하여 동적으로 생성됩니다. API 컨트롤러를 추가하거나 업데이트하면 다음에 애플리케이션을 빌드할 때 테이블이 자동으로 업데이트됩니다.
API 열에는 HTTP 메서드 및 상대 URI가 나열됩니다. 설명 열에는 메서드의 설명서에서 추출된 정보가 포함되어 있습니다.
메서드 정의 위에 추가한 설명은 설명 열에 표시됩니다.
API 메서드 설명
API 메서드 중 하나를 클릭하여 샘플 응답 본문을 비롯한 자세한 정보가 포함된 페이지로 이동합니다.
자세한 정보 페이지
요약
이 실습 랩을 완료하여 다음을 수행하는 방법을 배웠습니다.
- Visual Studio 2013 One ASP.NET Experience를 사용하여 새 웹 애플리케이션 만들기
- 여러 ASP.NET 기술을 단일 프로젝트에 통합
- ASP.NET 스캐폴딩을 사용하여 모델 클래스에서 MVC 컨트롤러 및 뷰 생성
- Entity Framework를 통해 비동기 프로그래밍 및 데이터 액세스와 같은 기능을 사용하는 Web API 컨트롤러 생성
- 컨트롤러에 대한 Web API 도움말 페이지 자동 생성