Quản lý gói sản phẩm API

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Nhóm một hoặc nhiều sản phẩm API vào một vùng chứa được kiếm tiền duy nhất, được gọi là gói sản phẩm API, như mô tả trong các phần sau.

Gói sản phẩm API là gì?

Gói sản phẩm API là một tập hợp các sản phẩm API được trình bày cho nhà phát triển dưới dạng một nhóm và thường được liên kết với một hoặc nhiều gói giá để kiếm tiền. Bạn có thể tạo nhiều gói sản phẩm API và thêm một hoặc nhiều sản phẩm API vào mỗi gói. Bạn có thể đặt cùng một sản phẩm hoặc các sản phẩm API vào nhiều gói và liên kết chúng với nhiều (hoặc cùng một) gói giá.

Nhà phát triển chỉ có thể đăng ký ứng dụng của họ để sử dụng một gói sản phẩm API bằng cách mua một trong các gói giá hiện đang có hiệu lực. Gói sản phẩm API sẽ không hiển thị cho nhà phát triển cho đến khi bạn thêm và xuất bản (dưới dạng công khai) một kế hoạch giá cho gói sản phẩm (với ngày bắt đầu là ngày hiện tại hoặc ngày trong tương lai), như mô tả trong phần Quản lý kế hoạch giá. Sau khi bạn thêm và xuất bản một kế hoạch giá, nhà phát triển đăng nhập vào cổng thông tin cho nhà phát triển của bạn sẽ có thể chọn gói sản phẩm API và chọn kế hoạch giá. Ngoài ra, bạn có thể chấp nhận một gói giá cho nhà phát triển bằng API quản lý. Để biết thêm thông tin, hãy xem bài viết Mua gói thuê bao đã phát hành bằng API.

Sau khi thêm một sản phẩm API vào một gói sản phẩm API, bạn có thể cần thiết lập các mức giá cho sản phẩm API đó. Bạn chỉ cần làm việc này nếu tất cả các điều kiện sau đều được đáp ứng:

  • Bạn thiết lập một kế hoạch tỷ lệ chia sẻ doanh thu cho sản phẩm API.
  • Nhà phát triển tính phí bên thứ ba khi sử dụng tài nguyên trong sản phẩm API.
  • Có hạn chế tối thiểu hoặc tối đa về số tiền mà nhà phát triển có thể tính phí và bạn muốn thông báo cho nhà phát triển về hạn chế này.

Giá tối thiểu và tối đa sẽ xuất hiện trong phần thông tin chi tiết của gói sản phẩm API.

Khám phá trang Gói sản phẩm

Truy cập vào trang Gói sản phẩm, như mô tả bên dưới.

Edge

Để truy cập vào trang gói sản phẩm API bằng giao diện người dùng Edge, hãy chọn Xuất bản > Kiếm tiền > Gói sản phẩm trong thanh điều hướng bên trái.

Như minh hoạ trong hình trước, trang Gói sản phẩm cho phép bạn:

  • Xem thông tin tóm tắt cho tất cả các gói sản phẩm, bao gồm cả tên gói và danh sách các sản phẩm API có trong gói
  • Thêm gói sản phẩm
  • Chỉnh sửa gói sản phẩm
  • Tìm kiếm danh sách gói sản phẩm trên mọi trường hiển thị

Bạn chỉ có thể quản lý các sản phẩm API trong một gói sản phẩm hoặc xoá một gói sản phẩm (nếu không có gói giá nào được xác định) bằng API.

Classic Edge (Private Cloud)

Để truy cập vào trang gói API bằng giao diện người dùng Edge cũ, hãy chọn Xuất bản > Gói trong thanh điều hướng trên cùng.

Trang Gói API cho phép bạn:

  • Xem thông tin tóm tắt cho tất cả các gói API, bao gồm cả các sản phẩm API mà gói đó chứa và các gói giá liên quan
  • Thêm gói API
  • Chỉnh sửa gói API
  • Thêm và quản lý gói giá
  • Bật/tắt chế độ cài đặt quyền truy cập vào gói giá (công khai/riêng tư)
  • Lọc danh sách gói

Bạn chỉ có thể dùng API để quản lý các sản phẩm API trong một gói API hoặc xoá một gói API (nếu không có gói giá nào được xác định).

Thêm gói sản phẩm

Cách thêm một gói sản phẩm API:

  1. Nhấp vào + API Product Bundle (Gói sản phẩm API) trên trang Product Bundles (Gói sản phẩm).
  2. Nhập tên cho gói sản phẩm API.
  3. Nhập tên của một sản phẩm API vào trường Thêm sản phẩm.

    Khi bạn nhập tên của một sản phẩm API, một danh sách các sản phẩm API có chứa chuỗi đó sẽ xuất hiện trong trình đơn thả xuống. Nhấp vào tên của một sản phẩm API để thêm sản phẩm đó vào gói. Lặp lại để thêm các sản phẩm API khác.

  4. Lặp lại bước 3 để thêm tên sản phẩm API khác.
  5. Đối với mỗi sản phẩm API mà bạn thêm, hãy định cấu hình chính sách ghi lại giao dịch.
  6. Nhấp vào Lưu gói sản phẩm.

Chỉnh sửa gói sản phẩm

Cách chỉnh sửa gói sản phẩm:

  1. Trên trang Gói sản phẩm, hãy nhấp vào hàng của gói sản phẩm mà bạn muốn chỉnh sửa.

    Bảng điều khiển gói sản phẩm sẽ xuất hiện.

  2. Chỉnh sửa các trường gói sản phẩm (bắt buộc).

    Hãy xem phần định cấu hình chính sách ghi lại giao dịch để biết thêm thông tin.

  3. Nhấp vào Cập nhật gói sản phẩm.

Quản lý các gói sản phẩm API bằng API

Các phần sau đây mô tả cách quản lý các gói sản phẩm API bằng API.

Tạo một gói sản phẩm API bằng API

Để tạo một gói sản phẩm API, hãy gửi yêu cầu POST đến /organizations/{org_name}/monetization-packages. Khi đưa ra yêu cầu, bạn phải:

  • Xác định các sản phẩm API cần đưa vào gói sản phẩm API.
  • Chỉ định tên và nội dung mô tả cho gói sản phẩm API.
  • Đặt chỉ báo trạng thái cho gói sản phẩm API. Chỉ báo trạng thái có thể có một trong các giá trị sau: CREATED, ACTIVE, INACTIVE. Hiện tại, giá trị chỉ báo trạng thái mà bạn chỉ định được duy trì trong gói sản phẩm API, nhưng không được dùng cho bất kỳ mục đích nào.

Bạn có thể chỉ định tổ chức (không bắt buộc).

Hãy xem các thuộc tính cấu hình gói sản phẩm API để biết danh sách các lựa chọn được cung cấp cho API.

Ví dụ:

$ 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

Sau đây là ví dụ về phản hồi:

{
   "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"
 }

Xin lưu ý rằng phản hồi này bao gồm thông tin bổ sung về các sản phẩm API và mọi thuộc tính tuỳ chỉnh được chỉ định cho các sản phẩm API đó. (Bạn chỉ định thuộc tính tuỳ chỉnh khi tạo một sản phẩm API.) Các thuộc tính tuỳ chỉnh của một sản phẩm API có thể được đưa vào nhiều gói giá. Ví dụ: nếu thiết lập một gói thẻ giá, trong đó bạn tính phí nhà phát triển cho mỗi giao dịch, thì bạn có thể đặt giá cho gói dựa trên một thuộc tính tuỳ chỉnh, chẳng hạn như số byte được truyền trong một giao dịch.

Quản lý các sản phẩm API trong một gói sản phẩm API bằng API

Bạn có thể thêm hoặc xoá một sản phẩm API khỏi một gói sản phẩm API bằng API, như mô tả trong các phần sau.

Thêm một sản phẩm API vào một gói sản phẩm API

Để thêm một sản phẩm API vào một gói sản phẩm API, hãy gửi yêu cầu POST đến organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, trong đó {org_name} chỉ định tên của tổ chức, {package_id} chỉ định tên gói sản phẩm API và {product_id} chỉ định mã nhận dạng của sản phẩm API.

Ví dụ:

$ 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

Thêm một sản phẩm API vào một gói sản phẩm API có các gói giá theo sản phẩm bằng API

Để thêm một sản phẩm API vào một gói sản phẩm API có một hoặc nhiều gói giá dành riêng cho sản phẩm API (thẻ giá hoặc chia sẻ doanh thu), hãy gửi một yêu cầu POST đến organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, trong đó {org_name} chỉ định tên của tổ chức, {package_id} chỉ định tên gói sản phẩm API và {product_id} chỉ định mã nhận dạng của sản phẩm API.

Bạn phải truyền thông tin chi tiết về gói giá cho sản phẩm API mới trong nội dung yêu cầu. Ngoại trừ mảng ratePlanRates, các giá trị kế hoạch giá phải khớp với các giá trị được chỉ định cho tất cả các sản phẩm API khác. Để biết thêm thông tin về các thuộc tính của gói giá mà bạn có thể xác định, hãy xem Các thuộc tính cấu hình cho gói giá.

Ví dụ:

$ 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

Xoá một sản phẩm API khỏi gói sản phẩm API

Để xoá một sản phẩm API khỏi một gói sản phẩm API, hãy gửi yêu cầu XOÁ đến organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, trong đó {org_name} chỉ định tên của tổ chức, {package_id} chỉ định tên gói sản phẩm API và {product_id} chỉ định mã nhận dạng của sản phẩm API.

Ví dụ:

$ 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

Xem các gói sản phẩm API bằng API

Bạn có thể truy xuất một gói sản phẩm API cụ thể hoặc tất cả các gói sản phẩm API trong một tổ chức. Bạn cũng có thể truy xuất các gói sản phẩm API có giao dịch trong một phạm vi ngày nhất định, tức là chỉ những gói mà người dùng gọi các ứng dụng truy cập vào API trong những gói đó trong một ngày bắt đầu và ngày kết thúc được chỉ định.

Xem một gói sản phẩm API cụ thể: Để truy xuất một gói sản phẩm API cụ thể, hãy gửi yêu cầu GET đến /organizations/{org_name}/monetization-packages/{package_id}, trong đó {package_id} là thông tin nhận dạng của gói sản phẩm API (mã nhận dạng được trả về trong phản hồi khi bạn tạo gói sản phẩm API). Ví dụ:

$ 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

Xem tất cả các gói sản phẩm API: Để truy xuất tất cả các gói sản phẩm API cho một tổ chức, hãy gửi yêu cầu GET đến /organizations/{org_name}/monetization-packages. Ví dụ:

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

Bạn có thể truyền các tham số truy vấn sau để lọc kết quả:

Tham số truy vấn Mô tả
all Cờ chỉ định có trả về tất cả gói sản phẩm API hay không. Nếu được đặt thành false, số lượng gói sản phẩm API được trả về trên mỗi trang sẽ do tham số truy vấn size xác định. Giá trị mặc định là false.
size Số lượng gói sản phẩm API được trả về trên mỗi trang. Giá trị mặc định là 20. Nếu bạn đặt tham số truy vấn all thành true, thì tham số này sẽ bị bỏ qua.
page Số trang mà bạn muốn trả về (nếu nội dung được phân trang). Nếu bạn đặt tham số truy vấn all thành true, thì tham số này sẽ bị bỏ qua.

Phản hồi khi xem tất cả các gói sản phẩm API trong một tổ chức sẽ có dạng như sau (chỉ một phần phản hồi được hiển thị):

{
  "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
}

Xem các gói sản phẩm API có giao dịch: Để truy xuất các gói sản phẩm API có giao dịch trong một phạm vi ngày nhất định, hãy đưa ra yêu cầu GET đến /organizations/{org_name}/packages-with-transactions. Khi đưa ra yêu cầu, bạn cần chỉ định ngày bắt đầu và ngày kết thúc cho phạm vi ngày dưới dạng tham số truy vấn. Ví dụ: yêu cầu sau đây truy xuất các gói sản phẩm API có giao dịch trong tháng 8 năm 2013.

$ 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

Phản hồi sẽ có dạng như sau (chỉ một phần của phản hồi được hiển thị):

{
  "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"
  },
     ...
  } ]
}

Xem các gói sản phẩm API mà nhà phát triển hoặc công ty sử dụng API chấp nhận

Xem các gói sản phẩm API mà một nhà phát triển hoặc công ty cụ thể chấp nhận bằng cách gửi yêu cầu GET đến các API sau đây, tương ứng:

  • /organizations/{org_name}/developers/{developer_id}/monetization-packages, trong đó {developer_id} là mã nhận dạng (địa chỉ email) của nhà phát triển.
  • /organizations/{org_name}/companies/{company_id}/monetization-packages, trong đó {company_id} là mã nhận dạng của công ty.

Khi đưa ra yêu cầu, bạn có thể chỉ định các tham số truy vấn sau (không bắt buộc):

Tham số truy vấn Mô tả Mặc định
current Cờ chỉ định xem chỉ truy xuất các gói sản phẩm API đang hoạt động (current=true) hay tất cả các gói (current=false). Tất cả các gói giá trong một gói đang hoạt động đều được coi là có sẵn. current=false
allAvailable Cờ chỉ định có truy xuất tất cả các gói sản phẩm API hiện có (allAvailable=true) hay chỉ các gói sản phẩm API dành riêng cho nhà phát triển hoặc công ty (allAvailable=false). Tất cả các gói sản phẩm API hiện có là những gói sản phẩm API dành cho nhà phát triển hoặc công ty được chỉ định, ngoài các nhà phát triển hoặc công ty khác. Các gói sản phẩm API chỉ dành riêng cho một công ty hoặc nhà phát triển chỉ chứa những gói giá dành riêng cho công ty hoặc nhà phát triển đó. allAvailable=true

Ví dụ: yêu cầu sau đây truy xuất tất cả các gói sản phẩm API mà một nhà phát triển cụ thể chấp nhận:

$ 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

Yêu cầu sau đây chỉ truy xuất các gói API đang hoạt động mà một công ty cụ thể chấp nhận:

$ 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

Xoá gói sản phẩm API bằng API

Bạn chỉ có thể xoá một gói sản phẩm API nếu gói đó không có kế hoạch giá nào được xác định.

Để xoá một gói sản phẩm API không có bất kỳ gói giá nào được xác định, hãy gửi yêu cầu XOÁ đến organizations/{org_name}/monetization-packages/{package_id}, trong đó {org_name} chỉ định tên của tổ chức và {package_id} chỉ định tên gói sản phẩm API.

Ví dụ:

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

Các thuộc tính cấu hình gói sản phẩm API cho API

Các lựa chọn cấu hình gói sản phẩm API sau đây được cung cấp cho API:

Tên Mô tả Mặc định Bắt buộc?
description

Nội dung mô tả về gói sản phẩm API.

Không áp dụng
displayName

Tên sẽ hiển thị cho gói sản phẩm API (ví dụ: trong danh mục gói API).

Không áp dụng
name

Tên của gói sản phẩm API.

Không áp dụng
organization

Tổ chức chứa gói sản phẩm API.

Không áp dụng Không
product

Một mảng gồm một hoặc nhiều sản phẩm trong gói sản phẩm API.

Không áp dụng Không
status

Chỉ báo trạng thái cho gói sản phẩm API. Chỉ báo trạng thái có thể có một trong các giá trị sau: CREATED, ACTIVE, INACTIVE.

Không áp dụng