API 제품 번들 관리

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

다음 섹션에 설명된 대로 하나 이상의 API 제품을 API 제품 번들이라고 하는 하나의 수익 창출 컨테이너로 묶습니다.

API 제품 번들이란 무엇인가요?

API 제품 번들은 개발자에게 그룹으로 제시되는 API 제품의 모음이며 일반적으로 하나 이상의 수익 창출 요금제와 연결되어 있습니다. API 제품 번들을 여러 개 만들고 각 번들에 하나 이상의 API 제품을 포함할 수 있습니다. 동일한 API 제품을 서로 다른 번들에 넣고 다른 (또는 동일한) 요금제와 연결할 수 있습니다.

개발자는 현재 적용 중인 요금제 중 하나를 구매해야만 API 제품 번들을 사용하도록 앱을 등록할 수 있습니다. 요금제 관리에 설명된 대로 제품 번들의 요금제(현재 날짜 또는 미래 날짜 시작일)를 추가하고 공개하기 전까지는 API 제품 번들이 개발자에게 표시되지 않습니다. 요금제를 추가하고 게시한 후에는 개발자 포털에 로그인한 개발자가 API 제품 번들을 선택하고 요금제를 선택할 수 있습니다. 또는 관리 API를 사용하여 개발자를 위한 요금제를 수락할 수 있습니다. 자세한 내용은 API를 사용하여 게시된 요금제 구매를 참고하세요.

API 제품 번들에 API 제품을 추가한 후 API 제품의 가격대를 설정해야 할 수 있습니다. 다음 조건에 모두 해당하는 경우에만 이 작업을 수행해야 합니다.

  • API 제품에 대한 수익 공유 요금제를 설정합니다.
  • 개발자는 API 제품의 리소스 사용에 대해 제3자에게 요금을 청구합니다.
  • 개발자가 청구할 수 있는 금액에는 최소 또는 최대 제한이 있으며, 개발자는 이러한 제한사항을 개발자에게 알리려고 합니다.

최저 및 최고 가격은 API 제품 번들의 세부정보에 표시됩니다.

제품 번들 페이지 살펴보기

아래에 설명된 대로 제품 번들 페이지에 액세스합니다.

에지

Edge UI를 사용하여 API 제품 번들 페이지에 액세스하려면 왼쪽 탐색 메뉴에서 게시 > 수익 창출 > 제품 번들을 선택합니다.

이전 그림에 강조 표시된 것처럼 제품 번들 페이지를 통해 다음을 할 수 있습니다.

  • 번들 이름과 번들에 포함된 API 제품의 목록을 포함한 모든 제품 번들의 요약 정보를 확인합니다.
  • 제품 번들 추가
  • 제품 번들 수정
  • 표시되는 입력란에서 제품 번들 목록을 검색합니다.

API만 사용하여 제품 번들에서 API 제품을 관리하거나 제품 번들을 삭제 (요금제가 정의되지 않은 경우)할 수 있습니다.

Classic Edge (Private Cloud)

Classic Edge UI를 사용하여 API 패키지 페이지에 액세스하려면 상단 탐색 메뉴에서 게시 > 패키지를 선택합니다.

API 패키지 페이지에서 다음을 수행할 수 있습니다.

  • 포함된 API 제품 및 관련 요금제 등 모든 API 패키지의 요약 정보를 확인합니다.
  • API 패키지 추가
  • API 패키지 수정
  • 요금제 추가 및 관리
  • 요금제 액세스 설정 (공개/비공개) 전환
  • 패키지 목록 필터링

API만 사용하여 API 패키지에서 API 제품을 관리하거나 API 패키지를 삭제 (요금제가 정의되지 않은 경우)할 수 있습니다.

제품 번들 추가

API 제품 번들을 추가하려면 다음 단계를 따르세요.

  1. 제품 번들 페이지에서 + API 제품 번들을 클릭합니다.
  2. API 제품 번들의 이름을 입력합니다.
  3. 제품 추가 필드에 API 제품의 이름을 입력합니다.

    API 제품 이름을 입력하면 이 문자열이 포함된 API 제품 목록이 드롭다운에 표시됩니다. API 제품의 이름을 클릭하여 번들에 추가합니다. API 제품을 더 추가하려면 위 단계를 반복합니다.

  4. 3단계를 반복하여 API 제품 이름을 추가합니다.
  5. 추가하는 각 API 제품에 대해 거래 기록 정책을 구성합니다.
  6. 제품 번들 저장을 클릭합니다.

제품 번들 수정

제품 번들을 수정하려면 다음 단계를 따르세요.

  1. 제품 번들 페이지에서 수정할 제품 번들이 있는 행 내에서 클릭합니다.

    제품 번들 패널이 표시됩니다.

  2. 필요에 따라 제품 번들 필드를 수정합니다.

    자세한 내용은 거래 기록 정책 구성을 참조하세요.

  3. 제품 번들 업데이트를 클릭합니다.

API를 사용하여 API 제품 번들 관리

다음 섹션에서는 API를 사용하여 API 제품 번들을 관리하는 방법을 설명합니다.

API를 사용하여 API 제품 번들 만들기

API 제품 번들을 만들려면 /organizations/{org_name}/monetization-packages에 POST 요청을 실행합니다. 요청을 보낼 때 다음을 수행해야 합니다.

  • API 제품 번들에 포함할 API 제품을 식별합니다.
  • API 제품 번들의 이름과 설명을 지정합니다.
  • API 제품 번들의 상태 표시기를 설정합니다. 상태 표시기는 CREATED, ACTIVE, INACTIVE 값 중 하나일 수 있습니다. 사용자가 지정하는 상태 표시기 값은 현재 API 제품 번들에서 유지 관리되지만 어떠한 용도로도 사용되지 않습니다.

원하는 경우 조직을 지정할 수 있습니다.

API에 노출되는 옵션 목록은 API 제품 번들 구성 속성을 참고하세요.

예를 들면 다음과 같습니다.

$ curl -H "Content-Type:application/json" -X POST -d \
'{
     "description": "payment messaging package",
     "displayName": "Payment Messaging Package",
     "name": "Payment Messaging Package",
     "organization": { "id": "{org_name}" },
     "product": [
       { "id": "messaging" },
       { "id": "payment" }
     ],
     "status": "CREATED"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages" \
-u email:password

다음은 응답의 예시입니다.

{
   "description" : "payment messaging package",
   "displayName" : "Payment Messaging Package",
   "id" : "payment_messaging_package",
   "name" : "Payment Messaging Package",
   "organization" : {
     "id" : "{org_name}",
     "separateInvoiceForFees" : false
   },
   "product" : [ {
     "customAtt1Name" : "user",
     "description" : "Messaging",
     "displayName" : "Messaging",
     "id" : "messaging",
     "name" : "messaging",
     "organization" : {
       "id" : "{org_name}",
       "separateInvoiceForFees" : false
     },
     "status" : "CREATED"
   }, {
     "customAtt1Name" : "user",
     "description" : "Payment",
     "displayName" : "Payment",
     "id" : "payment",
     "name" : "payment",
     "organization" : {
       "id" : "{org_name}",
       "separateInvoiceForFees" : false
     },
     "status" : "CREATED"
   }],
   "status" : "CREATED"
 }

응답에는 API 제품에 대한 추가 정보와 해당 API 제품에 지정된 커스텀 속성이 포함됩니다. (커스텀 속성은 API 제품을 만들 때 지정됩니다.) API 제품의 커스텀 속성은 다양한 요금제에 반영될 수 있습니다. 예를 들어 각 트랜잭션에 대해 개발자에게 청구하는 요율표 요금제를 설정하는 경우 트랜잭션에서 전송되는 바이트 수와 같은 커스텀 속성을 기반으로 요금제 요금을 설정할 수 있습니다.

API를 사용하여 API 제품 번들에서 API 제품 관리

다음 섹션에 설명된 대로 API를 사용하여 API 제품 번들에서 API 제품을 추가하거나 삭제할 수 있습니다.

API 제품 번들에 API 제품 추가

API 제품 번들에 API 제품을 추가하려면 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}에 POST 요청을 실행합니다. 여기서 {org_name}는 조직 이름을 지정하고, {package_id}는 API 제품 번들 이름을, {product_id}는 API 제품의 ID를 지정합니다.

예를 들면 다음과 같습니다.

$ curl -H "Accept:application/json" -X POST -d \
'{}'\
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

API 제품별 요금제를 사용하여 API 제품 번들에 API 제품 추가

하나 이상의 API 제품별 요금제 (요율표 또는 수익 공유)가 정의된 API 제품 번들에 API 제품을 추가하려면 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}에 POST 요청을 실행합니다. 여기서 {org_name}는 조직 이름을 지정하고, {package_id}는 API 제품 번들 이름을 지정하고, {product_id}는 API 제품의 ID를 지정합니다.

새 API 제품에 대한 요금제 세부정보를 요청 본문에 전달해야 합니다. ratePlanRates 배열을 제외하고 요금제 값은 다른 모든 API 제품에 지정된 값과 일치해야 합니다. 정의할 수 있는 요금제 속성에 대한 자세한 내용은 요금제 구성 속성을 참고하세요.

예를 들면 다음과 같습니다.

$ curl -H "Content-Type:application/json" -X POST -d \
'{
    "ratePlan": [ 
        {
            "id": "mypackage_rateplan1",
            "ratePlanDetails": [
                {
                    "currency": {
                        "id": "usd"
                    },
                    "duration": 1,
                    "durationType": "MONTH",
                    "meteringType": "UNIT",
                    "organization" : {
                        "id": "{org_name}",
                    "paymentDueDays": "30",
                    "ratePlanRates": [
                        {
                            "rate": "1.99",
                            "startUnit": "0",
                            "type": "RATECARD"
                        }
                    ],
                    "ratingParameter": "VOLUME",
                    "type": "RATECARD"
                }
            ]
        }
    ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

API 제품 번들에서 API 제품 삭제

API 제품 번들에서 API 제품을 삭제하려면 organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}에 DELETE 요청을 실행합니다. 여기서 {org_name}는 조직 이름을 지정하고, {package_id}는 API 제품 번들 이름을 지정합니다. {product_id}는 API 제품의 ID를 지정합니다.

예를 들면 다음과 같습니다.

$ curl -H "Accept:application/json" -X DELETE \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

API를 사용하여 API 제품 번들 보기

조직의 특정 API 제품 번들 또는 모든 API 제품 번들을 검색할 수 있습니다. 또한 지정된 기간에 거래가 있는 API 제품 번들을 검색할 수 있습니다. 즉, 사용자가 지정된 시작일 및 종료일에 이러한 패키지의 API에 액세스하는 앱을 호출하는 패키지만 검색할 수 있습니다.

특정 API 제품 번들 보기: 특정 API 제품 번들을 검색하려면 /organizations/{org_name}/monetization-packages/{package_id}에 GET 요청을 실행합니다. 여기서 {package_id}는 API 제품 번들의 ID입니다 (API 제품 번들을 만들면 응답에서 ID가 반환됩니다). 예를 들면 다음과 같습니다.

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/payment_messaging_package" \
-u email:password

모든 API 제품 번들 보기: 조직의 모든 API 제품 번들을 검색하려면 /organizations/{org_name}/monetization-packages에 GET 요청을 실행하세요. 예를 들면 다음과 같습니다.

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages" \
-u email:password

다음 쿼리 매개변수를 전달하여 결과를 필터링할 수 있습니다.

쿼리 매개변수 설명
all 모든 API 제품 번들을 반환할지 여부를 지정하는 플래그입니다. false로 설정하면 페이지당 반환되는 API 제품 번들의 수가 size 쿼리 매개변수로 정의됩니다. 기본값은 false입니다.
size 페이지당 반환된 API 제품 번들의 수입니다. 기본값은 20입니다. all 쿼리 매개변수가 true로 설정된 경우 이 매개변수는 무시됩니다.
page 반환하려는 페이지의 번호입니다 (콘텐츠가 페이지로 나뉘어 있는 경우). all 쿼리 매개변수가 true로 설정된 경우 이 매개변수는 무시됩니다.

조직의 모든 API 제품 번들을 보기 위한 응답은 다음과 같습니다 (응답의 일부만 표시됨).

{
  "monetizationPackage" : [ {
    "description" : "payment messaging package",
    "displayName" : "Payment Messaging Package",
    "id" : "payment_messaging_package",
    "name" : "Payment Messaging Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Messaging",
      "displayName" : "Messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    }, {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "Communications",
    "displayName" : "Communications",
    "id" : "communications",
    "name" : "Communications",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Location",
      "displayName" : "Location",
      "id" : "location",
      "name" : "location",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    }, {
      "customAtt1Name" : "user",
      "description" : "Messaging",
      "displayName" : "Messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "Payment",
    "displayName" : "Payment",
    "id" : "payment",
    "name" : "Payment",
    "organization" : {
     ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  } ],
  "totalRecords" : 3
}

거래가 포함된 API 제품 번들 보기: 지정된 기간의 거래가 있는 API 제품 번들을 검색하려면 /organizations/{org_name}/packages-with-transactions에 GET 요청을 실행합니다. 요청을 실행할 때 쿼리 매개변수로 기간의 시작일과 종료일을 지정해야 합니다. 예를 들어 다음 요청은 2013년 8월 한 달 동안의 트랜잭션이 포함된 API 제품 번들을 검색합니다.

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/packages-with-transactions?START_DATE=2013-08-01&END_DATE=2013-08-31" \
-u email:password

응답은 다음과 같아야 합니다(응답의 일부만 표시됨).

{
  "monetizationPackage" : [ {
    "description" : "Payment Package",
    "displayName" : "Payment Package",
    "id" : "payment_package",
    "name" : "Payment Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "customAtt2Name" : "response size",
      "customAtt3Name" : "content-length",
      "description" : "payment api product",
      "displayName" : "payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "status == 'SUCCESS'"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "messaging package",
    "displayName" : "Messaging Package",
    "id" : "messaging_package",
    "name" : "Messaging Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "customAtt2Name" : "response size",
      "customAtt3Name" : "content-length",
      "description" : "messaging api product",
      "displayName" : "messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "status == 'SUCCESS'"
    } ],
    "status" : "CREATED"
  },
     ...
  } ]
}

API를 사용하여 개발자 또는 회사가 수락한 API 제품 번들 보기

다음 API에 각각 GET 요청을 실행하여 특정 개발자 또는 회사에서 허용한 API 제품 번들을 확인합니다.

  • /organizations/{org_name}/developers/{developer_id}/monetization-packages, 여기서 {developer_id}는 개발자의 ID (이메일 주소)입니다.
  • /organizations/{org_name}/companies/{company_id}/monetization-packages, 여기서 {company_id}는 회사 ID입니다.

요청을 실행할 때 필요에 따라 다음 쿼리 매개변수를 지정할 수 있습니다.

쿼리 매개변수 설명 기본 계정
current 활성 API 제품 번들만 가져올지 (current=true) 모든 패키지를 가져올지 (current=false) 지정하는 플래그입니다. 활성 패키지의 모든 요금제를 사용할 수 있는 것으로 간주됩니다. current=false
allAvailable 사용 가능한 모든 API 제품 번들 (allAvailable=true)을 검색할지 또는 개발자나 회사 (allAvailable=false)에만 사용할 수 있는 API 제품 번들만 검색할지 지정하는 플래그입니다. 사용 가능한 모든 항목은 지정된 개발자나 회사 외에 다른 개발자나 회사도 사용할 수 있는 API 제품 번들을 의미합니다. 특정 회사 또는 개발자에게 제공되는 API 제품 번들에는 해당 회사 또는 개발자만 사용할 수 있는 요금제만 포함되어 있습니다. allAvailable=true

예를 들어 다음 요청은 특정 개발자가 수락한 모든 API 제품 번들을 검색합니다.

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/dev1@myorg.com/monetization-packages" \
-u email:password

다음 요청은 특정 회사에서 허용하는 활성 API 패키지만 검색합니다.

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/companies/myCompany/monetization-packages?current=true" \
-u email:password

API를 사용한 API 제품 번들 삭제

API 제품 번들에 정의된 요금제가 없는 경우에만 삭제할 수 있습니다.

정의된 요금제가 없는 API 제품 번들을 삭제하려면 organizations/{org_name}/monetization-packages/{package_id}에 DELETE 요청을 실행하세요. 여기서 {org_name}는 조직 이름을 지정하고 {package_id}는 API 제품 번들 이름을 지정합니다.

예를 들면 다음과 같습니다.

$ curl -H "Accept:application/json" -X DELETE \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}" \
-u email:password

API의 API 제품 번들 구성 속성

다음 API 제품 번들 구성 옵션이 API에 노출됩니다.

이름 설명 기본 계정 필수 여부
description

API 제품 번들에 대한 설명입니다.

N/A
displayName

API 제품 번들에 대해 표시할 이름입니다 (예: API 패키지 카탈로그).

N/A
name

API 제품 번들의 이름입니다.

N/A
organization

API 제품 번들이 포함된 조직입니다.

N/A No
product

API 제품 번들에 있는 하나 이상의 제품의 배열입니다.

N/A No
status

API 제품 번들의 상태 표시기입니다. 상태 표시기는 CREATED, ACTIVE, INACTIVE 값 중 하나일 수 있습니다.

N/A