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

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về 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 kiếm tiền duy nhất, còn 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 mà nhà phát triển giới thiệu cho các 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à đưa vào một hoặc nhiều sản phẩm API trong mỗi gói. Bạn có thể đưa cùng một sản phẩm API hoặc sản phẩm vào nhiều gói rồi liên kết chúng với các gói giá khác nhau (hoặc giống nhau).

Nhà phát triển chỉ có thể đăng ký ứng dụng của mình để sử dụng gói sản phẩm API bằng cách mua một trong các gói giá đang có hiệu lực. Nhà phát triển không nhìn thấy gói sản phẩm API cho đến khi bạn thêm và phát hành (ở chế độ công khai) gói 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ý gói giá. Sau khi bạn thêm và phát hành gói giá, nhà phát triển đăng nhập vào cổng thông tin dành cho nhà phát triển sẽ có thể chọn gói sản phẩm API và chọn gói giá đó. Ngoài ra, bạn có thể chấp nhận 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 phần Mua gói giá đã phát hành bằng API.

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

  • Bạn thiết lập gói tỷ lệ chia sẻ doanh thu cho sản phẩm API.
  • Nhà phát triển tính phí cho các bên thứ ba đối với việc sử dụng tài nguyên trong sản phẩm API.
  • Có giới hạn 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 nên thông báo cho nhà phát triển về quy định hạn chế này.

Giá tối thiểu và giá tối đa sẽ xuất hiện trong 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 trang Gói sản phẩm theo mô tả dưới đây.

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ư được làm nổi bật 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 của 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 bất kỳ trường hiển thị nào

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 xác định được gói giá nào) bằng cách sử dụng API.

Phiên bản cũ (Đám mây riêng tư)

Để truy cập vào trang gói API bằng giao diện người dùng Classic Edge, hãy chọn Publish > Packages (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 của tất cả các gói API, bao gồm cả các sản phẩm API trong gói và các gói giá được liên kết
  • 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ể 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 xác định được gói giá nào) bằng API.

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

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

  1. Nhấp vào + Gói sản phẩm API trên trang 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, danh sách các sản phẩm API 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 thiết lập 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 về gói sản phẩm theo yêu cầu.

    Xem bài viết đị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ý gói sản phẩm API bằng API

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

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

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

  • Xác định các sản phẩm API để đư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: TẠO, HOẠT ĐỘNG, KHÔNG HOẠT ĐỘNG. 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.

Nếu muốn, bạn có thể chỉ định tổ chức.

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 hiển thị với 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"
 }

Lưu ý rằng phản hồi chứa 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 đó. (Thuộc tính tuỳ chỉnh được chỉ định khi bạn tạo một sản phẩm API.) 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 gói giá (tức là bạn tính phí nhà phát triển cho từng giao dịch), bạn có thể đặt mức 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 gói sản phẩm API bằng API

Bạn có thể dùng API để thêm hoặc xoá sản phẩm API khỏi gói sản phẩm API theo mô tả ở phần sau đây.

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

Để thêm một sản phẩm API vào gói sản phẩm API, hãy đưa ra yêu cầu POST cho 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 sản phẩm API vào gói sản phẩm API với các gói giá dành riêng cho sản phẩm API

Để thêm sản phẩm API vào 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 được xác định (bảng giá hoặc chia sẻ doanh thu), hãy gửi yêu cầu POST tới organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, trong đó {org_name} chỉ định tên tổ chức của bạn, {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 chuyển chi tiết 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, giá trị gói 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 gói giá có thể xác định, hãy xem bài viết 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á sản phẩm API khỏi gói sản phẩm API

Để xoá một sản phẩm API khỏi gói sản phẩm API, hãy đưa ra yêu cầu DELETE đối với 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 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ả 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 các gói đó trong một ngày bắt đầu và kết thú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 tới /organizations/{org_name}/monetization-packages/{package_id}, trong đó {package_id} là giá trị 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ả 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ể chuyển các tham số truy vấn sau đây để lọc kết quả:

Tham số truy vấn Nội dung mô tả
all Cờ chỉ định liệu có trả lại tất cả các gói sản phẩm API hay không. Nếu bạn đặt thành false, thì số lượng gói sản phẩm API được trả về trên mỗi trang sẽ được xác định bằng tham số truy vấn size. Giá trị mặc định là false.
size Số 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 để xem tất cả các gói sản phẩm API trong một tổ chức phải có dạng như sau (chỉ một phần của 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 gửi yêu cầu GET tới /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ỉ hiển thị một phần nội dung của phản hồi):

{
  "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 được nhà phát triển hoặc công ty chấp nhận bằng API

Xem các gói sản phẩm API được 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 tương ứng đến các API sau:

  • /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ể tuỳ ý chỉ định các tham số truy vấn sau đây:

Tham số truy vấn Nội dung mô tả Mặc định
current Cờ chỉ định 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 truy xuất tất cả các gói sản phẩm API hiện có (allAvailable=true) hay chỉ truy xuất 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 có sẵn đề cập đến các gói sản phẩm API được cung cấp 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. Gói sản phẩm API dành riêng cho một công ty hoặc nhà phát triển chỉ chứa các 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ả gói sản phẩm API được 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 được 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 sản phẩm đó chưa xác định gói giá nào.

Để xoá một gói sản phẩm API chưa xác định gói giá nào, hãy gửi yêu cầu DELETE đối với organizations/{org_name}/monetization-packages/{package_id}, trong đó {org_name} chỉ định tên tổ chức của bạn 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

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

API sẽ hiển thị các lựa chọn cấu hình gói sản phẩm API sau đây:

Tên Nội dung 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 để 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 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: TẠO, HOẠT ĐỘNG, KHÔNG HOẠT ĐỘNG.

Không áp dụng