다음을 통해 공유


자습서: API 변환 및 보호

적용 대상: 모든 API Management 계층

이 자습서에서는 API를 보호하거나 변환하는 정책을 구성하는 방법에 대해 알아봅니다. 정책은 API의 동작을 수정하는 API의 요청 또는 응답에 따라 순차적으로 실행되는 문의 컬렉션입니다.

예를 들어 사용자 지정 응답 헤더를 설정할 수 있습니다. 또는 개발자가 API를 과도하게 사용하지 않도록 속도 제한 정책을 구성하여 백 엔드 API를 보호합니다. 이러한 예제는 API Management 정책에 대한 간단한 소개입니다. 자세한 정책 옵션은 API Management 정책을 참조하세요.

참고 항목

기본적으로 API Management는 전역 forward-request 정책을 구성합니다. 게이트웨이에서 백 엔드 서비스에 대한 요청을 완료하려면 forward-request 정책이 필요합니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 사용자 지정 응답 헤더를 설정하도록 API 변환
  • 속도 제한 정책(제한)을 추가하여 API 보호
  • 변환 테스트

포털의 API Management 정책을 보여 주는 스크린샷

필수 조건

API Management 인스턴스로 이동

  1. Azure Portal에서 API Management 서비스를 검색하여 선택합니다.

    API Management Services 선택

  2. API Management 서비스 페이지에서 API Management 인스턴스를 선택합니다.

    API Management 인스턴스 선택

원래 응답 테스트

원래 응답을 확인하려면 다음을 수행합니다.

  1. API Management 서비스 인스턴스에서 API를 선택합니다.
  2. API 목록에서 Swagger Petstore를 선택합니다.
  3. 화면 위쪽에 있는 테스트 탭을 선택합니다.
  4. 상태 작업별로 GET 찾은 애완 동물을 선택하고 선택적으로 상태 쿼리 매개 변수다른 값을 선택합니다. 보내기를 선택합니다.

원래 API 응답은 다음 응답과 비슷합니다.

포털의 기존 API 응답 스크린샷

사용자 지정 응답 헤더를 추가하도록 API 변환

API Management에는 요청 또는 응답 페이로드, 헤더 또는 상태 코드를 수정하는 데 사용할 수 있는 몇 가지 변환 정책이 포함되어 있습니다. 이 예제에서는 API 응답에서 사용자 지정 응답 헤더를 설정합니다.

변환 정책 설정

이 섹션에서는 정책을 사용하여 set-header 사용자 지정 응답 헤더를 구성하는 방법을 보여줍니다. 여기서는 정책 구성을 간소화하는 양식 기반 정책 편집기를 사용합니다.

  1. Swagger Petstore>Design>All 작업을 선택합니다.

  2. 아웃바운드 처리 섹션에서 + 정책 추가를 선택합니다.

    포털에서 아웃바운드 정책으로 이동하는 스크린샷

  3. 아웃바운드 정책 추가 창에서 헤더 설정을 선택합니다.

    포털에서 헤더 설정 정책을 구성하는 스크린샷

  4. 헤더 설정 정책을 구성하려면 다음을 수행합니다.

    1. 이름 아래에서 사용자 지정을 입력합니다.
    2. 값 아래에서 + 값 추가를 선택합니다. "내 사용자 지정 값"을 입력합니다.
    3. 저장을 선택합니다.
  5. 구성 후에는 아웃바운드 처리 섹션에 set-header 정책 요소가 나타납니다.

    포털의 헤더 아웃바운드 정책 설정 스크린샷

속도 제한 정책(제한)을 추가하여 API 보호

이 섹션에서는 개발자가 API를 과도하게 사용하지 않도록 속도 제한을 구성하여 보호를 백 엔드 API에 추가하는 방법을 보여 줍니다. 이 예제에서는 코드 편집기를 사용하여 정책을 구성하는 rate-limit-by-key 방법을 보여줍니다. 이 예제에서 제한은 15초당 세 번의 호출로 설정됩니다. 15초 후에 개발자는 API 호출을 다시 시도할 수 있습니다.

참고 항목

이 정책은 소비 계층에서 지원되지 않습니다.

  1. Swagger Petstore>Design>All 작업을 선택합니다.

  2. 인바운드 처리 섹션에서 코드 편집기(</>) 아이콘을 선택합니다.

    포털에서 인바운드 정책 코드 편집기를 탐색하는 스크린샷

  3. 빈 줄의 <inbound> 요소 내부에 커서를 놓습니다. 그런 다음, 화면 오른쪽 위 모서리에서 코드 조각 표시를 선택합니다.

    포털의 인바운드 정책 편집기에서 코드 조각 표시를 선택하는 스크린샷

  4. 오른쪽 창의 액세스 제한 정책 아래에서 키당 호출 속도 제한을 선택합니다.

    <rate-limit-by-key /> 요소가 커서에 추가됩니다.

    포털에서 키당 호출 속도 제한 정책을 삽입하는 스크린샷

  5. <inbound> 요소의 <rate-limit-by-key /> 코드를 다음 코드로 수정합니다. 그런 다음 저장을 선택합니다.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

변환 테스트

이제 코드 편집기에서 코드를 살펴보면 정책이 다음 코드와 같습니다.

<policies>
     <inbound>
         <rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
         <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>

이 섹션의 나머지 부분에서는 이 문서에서 설정한 정책 변환을 테스트합니다.

사용자 지정 응답 헤더 테스트

  1. Swagger Petstore>테스트를 선택합니다.

  2. 상태 작업별로 GET 찾은 애완 동물을 선택하고 선택적으로 상태 쿼리 매개 변수다른 값을 선택합니다. 보내기를 선택합니다.

    보듯이 사용자 지정 응답 헤더가 추가됩니다.

    포털에서 사용자 지정 응답 헤더를 보여 주는 스크린샷

속도 제한 테스트

  1. Swagger Petstore>테스트를 선택합니다.

  2. 상태애완 동물 찾기 가져오기 작업을 선택합니다. 행에서 여러 번 보내기를 선택합니다.

    구성된 기간에 너무 많은 요청을 보내면 429 너무 많은 요청 응답이 표시됩니다 .

    포털의 응답에 너무 많은 요청을 보여 주는 스크린샷.

  3. 15초 이상 기다린 다음. 보내기를 다시 선택합니다. 이번에는 200 정상 응답이 표시됩니다.

요약

이 자습서에서는 다음 작업 방법을 알아보았습니다.

  • 사용자 지정 응답 헤더를 설정하도록 API 변환
  • 속도 제한 정책(제한)을 추가하여 API 보호
  • 변환 테스트

다음 단계

다음 자습서를 진행합니다.