자습서: Visual Studio Code용 API Management 확장을 사용하여 API 가져오기 및 관리

적용 대상: 사용량 | 개발자 | 기본 | 표준 | 프리미엄

이 자습서에서는 Visual Studio Code용 API Management 확장을 일반적인 API Management 작업에 사용하는 방법을 설명합니다. 친숙한 Visual Studio Code 환경을 사용하여 API를 가져오고, 테스트하고, 관리합니다.

다음 방법에 대해 설명합니다.

  • API Management로 API 가져오기
  • API 편집
  • API Management 정책 적용
  • API 테스트

API Management 확장의 API 스크린샷

추가 API Management 기능에 대한 소개는 Azure Portal을 사용하는 API Management 자습서를 참조하세요.

필수 조건

API 가져오기

다음 예에서는 JSON 형식의 OpenAPI 사양을 API Management로 가져옵니다. Microsoft는 이 예제에 사용된 백엔드 API를 제공하고, Azure에서 이 API를 https://conferenceapi.azurewebsites.net에 호스트합니다.

  1. Visual Studio Code의 작업 막대에서 Azure 아이콘을 선택합니다.
  2. 탐색기 창에서 사용자가 만든 API Management 인스턴스를 펼칩니다.
  3. 마우스 오른쪽 단추로 API를 클릭하고, OpenAPI 링크에서 가져오기를 선택합니다.
  4. 메시지가 표시되면 다음 값을 입력합니다.
    1. JSON 형식의 콘텐츠에 대한 OpenAPI 링크. 이 예의 경우 https://conferenceapi.azurewebsites.net?format=json입니다.

      이 파일은 예제 API(이 경우 https://conferenceapi.azurewebsites.net)를 구현하는 백 엔드 서비스를 지정합니다. API Management는 이 웹 서비스로 요청을 전달합니다.

    2. API 이름(예: demo-conference-api) - API Management 인스턴스에서 고유합니다. 이 이름에는 문자, 숫자 및 하이픈만 포함될 수 있습니다. 첫 번째 및 마지막 문자는 영숫자여야 합니다. 이 이름은 API를 호출하는 경로에 사용됩니다.

API를 성공적으로 가져오면 탐색기 창에 표시되고, 사용 가능한 API 작업이 작업 노드 아래에 표시됩니다.

탐색기 창에서 가져온 API의 스크린샷

API 편집

API는 Visual Studio Code에서 편집할 수 있습니다. 예를 들어 편집기 창에서 API에 대한 Resource Manager JSON 설명을 편집하여 API에 액세스하는 데 사용되는 http 프로토콜을 제거합니다.

Visual Studio Code에서 JSON 설명을 편집하는 스크린샷

OpenAPI 형식을 편집하려면 탐색기 창에서 마우스 오른쪽 단추로 API 이름을 클릭하고, OpenAPI 편집을 선택합니다. 변경한 다음, 파일>저장을 차례로 선택합니다.

API에 정책 적용

API Management는 API에 대해 구성할 수 있는 정책을 제공합니다. 정책은 문의 컬렉션입니다. 이러한 문은 API의 요청 또는 응답에 따라 순차적으로 실행됩니다. 정책은 API Management 인스턴스의 모든 API에 적용되는 전역적인 정책이거나 제품, API 또는 API 작업에 특정될 수 있습니다.

이 섹션에서는 API 응답을 변환하는 일반적인 아웃바운드 정책을 API에 적용하는 방법을 보여 줍니다. 다음 예제의 정책은 응답 헤더를 변경하고 응답 본문에 표시되는 원래 백 엔드 URL을 숨깁니다.

  1. 탐색기 창의 가져온 demo-conference-api 아래에서 정책을 선택합니다. 편집기 창에서 정책 파일이 열립니다. 이 파일은 API의 모든 작업에 대한 정책을 구성합니다.

  2. 파일을 <outbound> 요소의 다음 내용으로 업데이트합니다.

    [...]
    <outbound>
        <set-header name="Custom" exists-action="override">
            <value>"My custom value"</value>
        </set-header>
        <set-header name="X-Powered-By" exists-action="delete" />
        <redirect-content-urls />
        <base />
    </outbound>
    [...]
    
    • 첫 번째 set-header 정책은 데모를 위한 사용자 지정 응답 헤더를 추가합니다.
    • 두 번째 set-header 정책은 X-Powered-By 헤더를 삭제합니다(있는 경우). 이 헤더는 API 백 엔드에 사용되는 애플리케이션 프레임워크를 표시할 수 있으며, 게시자가 이를 제거하는 경우가 많습니다.
    • redirect-content-urls 정책은 API Management 게이트웨이를 통해 동등한 링크를 가리키도록 응답 본문의 링크를 다시 작성(마스킹)합니다.
  3. 파일을 저장합니다. 메시지가 표시되면 업로드를 선택하여 파일을 클라우드에 업로드합니다.

API 테스트

API를 테스트하려면 구독 키를 가져와 API Management 게이트웨이에 요청하세요.

구독 키 가져오기

가져온 API와 적용되는 정책을 테스트하려면 API Management 인스턴스에 대한 구독 키가 필요합니다.

  1. 탐색기 창에서 마우스 오른쪽 단추로 API Management 인스턴스의 이름을 클릭합니다.

  2. 구독 키 복사를 선택합니다. 이 키는 API Management 인스턴스를 만들면 생기는 모든 기본 제공 액세스 구독에서 사용됩니다.

    Visual Studio Code의 구독 키 복사 명령 스크린샷

    주의

    모든 액세스 구독을 사용하면 API Management 인스턴스의 모든 API에 액세스할 수 있으며, 이 구독은 권한 있는 사용자만 사용해야 합니다. 루틴 API 액세스 시 이 구독을 사용하거나 클라이언트 앱에 모든 액세스 키를 포함해서는 안 됩니다.

API 작업 테스트

  1. 탐색기 창의 가져온 demo-conference-api 아래에서 작업 노드를 펼칩니다.
  2. GetSpeakers와 같은 작업을 선택한 다음, 작업을 마우스 오른쪽 단추로 클릭하고 작업 테스트를 선택합니다.
  3. 편집기 창에서 Ocp-Apim-Subscription-Key 옆에 있는 {{SubscriptionKey}}를 복사한 구독 키로 바꿉니다.
  4. Ocp-Apim-Trace 옆에 false를 입력합니다. 이 설정은 요청 추적을 사용하지 않습니다.
  5. 요청 보내기를 선택합니다.

Visual Studio Code에서 API 요청을 보내는 스크린샷

요청이 성공하면 백 엔드에서 200 OK 및 일부 데이터를 사용하여 응답합니다.

Visual Studio Code의 API 테스트 응답 스크린샷

응답에서 다음 세부 정보를 확인합니다.

  • Custom 헤더가 응답에 추가됩니다.
  • X-Powered-By 헤더가 응답에 표시되지 않습니다.
  • API 백 엔드에 대한 URL이 API Management 게이트웨이(이 경우 https://apim-hello-world.azure-api.net/demo-conference-api)로 리디렉션됩니다.

추적 요청 처리

필요한 경우 API를 디버그하고 API 문제를 해결하는 데 도움이 되는 자세한 요청 추적 정보를 가져올 수 있습니다.

요청 처리를 추적하려면 먼저 API를 디버그하는 데 사용되는 구독에서 추적 허용 설정을 사용합니다. 포털에서 이 설정을 사용하는 단계는 추적 허용 설정 확인을 참조하세요. 중요한 정보가 의도치 않게 공개되는 일을 제한하기 위해 추적은 1시간 동안만 허용됩니다.

구독 추적을 허용한 후 다음 단계를 수행합니다.

  1. 탐색기 창의 가져온 demo-conference-api 아래에서 작업 노드를 펼칩니다.
  2. GetSpeakers와 같은 작업을 선택한 다음, 작업을 마우스 오른쪽 단추로 클릭하고 작업 테스트를 선택합니다.
  3. 편집기 창에서 Ocp-Apim-Subscription-Key 옆에 있는 {{SubscriptionKey}}를 사용하려는 구독 키로 바꿉니다.
  4. Ocp-Apim-Trace 옆에 true를 입력합니다. 이 설정을 사용하면 이 요청을 추적할 수 있습니다.
  5. 요청 보내기를 선택합니다.

요청이 성공하면 백 엔드 응답에 Ocp-APIM-Trace-Location 헤더가 포함됩니다.

Visual Studio Code의 API 테스트 응답에서 추적 위치 스크린샷

Ocp-APIM-Trace-Location 옆에 있는 링크를 선택하여 인바운드, 백 엔드, 아웃바운드 추적 정보를 확인합니다. 추적 정보는 요청 후 문제가 발생하는 위치를 확인하는 데 도움이 됩니다.

API 작업을 테스트하는 경우 API Management 확장에서 선택적 정책 디버깅(개발자 서비스 계층에서만 사용 가능)을 허용합니다.

리소스 정리

더 이상 필요하지 않은 경우 마우스 오른쪽 단추를 클릭하고 Portal에서 열기를 선택하고 API Management 서비스 및 리소스 그룹을 삭제하여 API Management 인스턴스를 제거합니다.

또는 API Management 삭제를 선택하여 API Management 인스턴스만 삭제할 수 있습니다(이 작업은 해당 리소스 그룹이 삭제되지 않음).

Visual Studio Code에서 API Management 인스턴스를 삭제하는 스크린샷

이 자습서에서는 Visual Studio Code용 API Management 확장의 몇 가지 기능을 소개했습니다. 이러한 기능을 사용하여 API를 가져오고 관리할 수 있습니다. 다음 방법에 대해 알아보았습니다.

  • API Management로 API 가져오기
  • API 편집
  • API Management 정책 적용
  • API 테스트

API Management 확장은 API에서 사용할 수 있는 추가 기능을 제공합니다. 예를 들어 정책을 디버그(개발자 서비스 계층에서 사용 가능)하거나 명명된 값을 만들고 관리합니다.