다음을 통해 공유


자습서: 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로 가져옵니다. 이 예제에서는 오픈 소스 Petstore API를 가져옵니다.

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

      이 파일은 예제 API를 구현하는 백 엔드 서비스 및 지원하는 작업을 지정합니다.

    2. API Management 인스턴스에서 고유한 petstore와 같은 API 이름입니다. 이 이름에는 문자, 숫자 및 하이픈만 포함될 수 있습니다. 첫 번째 및 마지막 문자는 영숫자여야 합니다. 이 이름은 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에 적용하는 방법을 보여 줍니다.

  1. 탐색기 창에서 가져온 애완 동물 저장소 API에서 정책을 선택합니다. 편집기 창에서 정책 파일이 열립니다. 이 파일은 API의 모든 작업에 대한 정책을 구성합니다.

  2. 다음 콘텐츠로 파일을 업데이트합니다.

    <policies>
        <inbound>
            <rate-limit calls="3" renewal-period="15" />
            <base />
        </inbound>
        <outbound>
            <set-header name="Custom" exists-action="override">
                <value>"My custom value"</value>
              </set-header>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    
    • 섹션 rate-limitinbound 정책은 API에 대한 호출 수를 15초마다 3개로 제한합니다.
    • 섹션 set-headeroutbound 정책은 데모용으로 사용자 지정 응답 헤더를 추가합니다.
  3. 파일을 저장합니다. 메시지가 표시되면 업로드를 선택하여 파일을 클라우드에 업로드합니다.

API 테스트

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

구독 키 가져오기

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

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

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

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

    주의

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

API 작업 테스트

  1. 탐색기 창에서 가져온 petstore API에서 작업 노드를 확장합니다.
  2. [GET] ID로 애완 동물 찾기와 같은 작업을 선택한 다음 작업을 마우스 오른쪽 단추로 클릭하고 테스트 작업을 선택합니다.
  3. 편집기 창에서 요청 URL의 petId 매개 변수를 대체 5 합니다.
  4. 편집기 창에서 Ocp-Apim-Subscription-Key 옆에 있는 {{SubscriptionKey}}를 복사한 구독 키로 바꿉니다.
  5. 요청 보내기를 선택합니다.

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

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

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

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

  • Custom 헤더가 응답에 추가됩니다.

이제 속도 제한 정책을 테스트합니다. 한 행에서 요청 보내기를 여러 번 선택합니다. 구성된 기간에 너무 많은 요청을 보낸 후 응답을 받습니다 429 Too Many Requests .

추적 요청 처리

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

API 추적을 사용하도록 설정하는 단계는 API 추적 사용을 참조하세요. 중요한 정보의 의도하지 않은 공개를 제한하기 위해 기본적으로 추적은 1시간 동안만 허용됩니다.

리소스 정리

더 이상 필요하지 않은 경우 마우스 오른쪽 단추를 클릭하고 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에서 사용할 수 있는 추가 기능을 제공합니다. 예를 들어 정책을 디버그(개발자 서비스 계층에서 사용 가능)하거나 명명된 값을 만들고 관리합니다.