ASP.NET Core의 REST

완료됨

웹 페이지로 이동하면 웹 서버는 HTML, CSS 및 JavaScript를 사용하여 브라우저와 통신합니다. 로그인 양식을 제출하거나 구입 단추를 선택하는 등의 작업을 수행하여 페이지와 상호 작용하는 경우 브라우저는 정보를 다시 웹 서버에 보냅니다.

비슷한 방식으로 웹 서버는 웹 서비스를 사용하여 다양한 클라이언트(브라우저, 모바일 디바이스, 기타 웹 서버 등)와 통신할 수 있습니다. API 클라이언트는 HTTP를 통해 서버와 통신하고 JSON 또는 XML과 같은 데이터 형식을 사용하여 서로 정보를 교환합니다. API는 웹 브라우저에서 대부분의 사용자 인터페이스 논리를 수행하는 SPA(단일 페이지 애플리케이션)에서 자주 사용됩니다. 웹 서버와의 통신은 주로 웹 API를 통해 수행됩니다.

REST: HTTP를 통해 API를 빌드하는 일반적인 패턴

REST(Representational State Transfer)는 웹 서비스를 빌드하기 위한 아키텍처 스타일입니다. REST 요청은 HTTP를 통해 이루어집니다. 웹 브라우저에서 웹 페이지를 검색하고 서버에 데이터를 보내는 데 사용하는 것과 동일한 HTTP 동사를 사용합니다. 동사는 다음과 같습니다.

  • GET: 웹 서비스에서 데이터를 검색합니다.
  • POST: 웹 서비스에서 새 데이터 항목을 만듭니다.
  • PUT: 웹 서비스에서 데이터 항목을 업데이트합니다.
  • PATCH: 이 작업은 항목을 수정하는 방법에 대한 지침을 설명하는 방식으로 웹 서비스에서 데이터 항목을 업데이트하는 데 사용합니다. 이 모듈의 샘플 애플리케이션은 이 동사를 사용하지 않습니다.
  • DELETE: 웹 서비스에서 데이터 항목을 삭제합니다.

REST를 준수하는 웹 서비스 API는 RESTful API라고 합니다. 다음을 통해 정의합니다.

  • 기본 URI.
  • HTTP 메서드(예: GET, POST, PUT, PATCH또는 DELETE).
  • JavaScript Object Notation(JSON) 또는 XML과 같은 데이터의 미디어 유형

API는 다르지만 관련 있는 몇 가지 항목에 서비스를 제공해야 하는 경우가 많습니다. 예를 들어, 피자 API는 피자, 고객 및 주문을 관리할 수 있습니다. 라우팅을 사용하여 코드의 논리적 부분에 URI(Uniform Resource Identifier)를 매핑하므로 https://localhost:5000/pizza에 대한 요청은 PizzaController로 라우팅되고 https://localhost:5000/order에 대한 요청은 OrderController로 라우팅됩니다.

ASP.NET Core에 API를 만들 때의 이점

ASP.NET을 사용하면 동일한 프레임워크와 패턴을 사용하여 웹 페이지와 서비스를 모두 빌드할 수 있습니다. 즉, 모델 클래스와 유효성 검사 논리를 다시 사용하고 동일한 프로젝트에서 웹 페이지와 서비스를 나란히 사용할 수도 있습니다. 이러한 접근 방식은 다음과 같은 이점이 있습니다.

  • 간단한 직렬화: ASP.NET은 최신 웹 환경을 위해 설계되었습니다. 엔드포인트는 즉시 올바른 형식의 JSON으로 클래스를 직렬화합니다. 특별한 구성이 필요하지 않습니다. 물론 고유한 요구 사항이 있는 엔드포인트에 대해 직렬화를 사용자 지정할 수 있습니다.

  • 인증 및 권한 부여: 보안을 위해 API 엔드포인트는 업계 표준 JWT(JSON Web Token)를 기본적으로 지원합니다. 정책 기반 권한 부여를 사용하면 코드에서 강력한 액세스 제어 규칙을 유연하게 정의할 수 있습니다.

  • 코드와 함께 라우팅: ASP.NET 특성을 사용하여 코드와 함께 인라인으로 경로와 동사를 정의할 수 있습니다. 요청 경로, 쿼리 문자열 및 요청 본문의 데이터는 메서드 매개 변수에 자동으로 바인딩됩니다.

  • 기본적으로 HTTPS: HTTPS는 최신 전문 웹 API의 중요한 부분입니다. 엔드투엔드 암호화를 사용하여 개인 정보를 제공하고 API 호출이 클라이언트와 서버 간에 중단되거나 변경되지 않도록 합니다.

    ASP.NET은 기본적으로 HTTPS를 지원합니다. 테스트 인증서를 자동으로 생성하고 쉽게 가져와서 로컬 HTTPS를 사용하도록 설정하므로 애플리케이션을 게시하기 전에 애플리케이션을 안전하게 실행하고 디버그할 수 있습니다.

.NET 앱으로 코드와 지식 공유

.NET 기술과 에코시스템을 사용하여 웹 API에서 모바일, 웹, 데스크톱, 서비스 등을 포함한 .NET으로 빌드된 다른 앱에 논리를 공유할 수 있습니다.

.NET HTTP REPL을 사용하여 웹 API 테스트

기존 웹 사이트를 개발하는 경우 일반적으로 웹 브라우저에서 작업을 보고 테스트합니다. Web API는 HTML이 아닌 데이터를 수락하고 반환하므로 웹 브라우저는 최상의 웹 API 테스트 도구가 아닙니다.

웹 API를 탐색하고 상호 작용하기 위한 가장 쉬운 옵션 중 하나는 .NET HTTP REPL(읽기-평가-인쇄 루프)입니다. 대화형 명령줄 환경을 빌드하는 간단하고 인기 있는 방법입니다. 다음 단원에서는 간단한 웹 API를 만든 다음, .NET HTTP REPL을 사용하여 상호 작용합니다.

지식 점검

1.

다음 중 ASP.NET Core를 사용하여 웹 API를 빌드해야 하는 이유가 아닌 것은 무엇인가요?