Mengelola paket produk API

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Gabungkan satu atau beberapa produk API ke dalam satu penampung yang dimonetisasi, yang disebut sebagai paket produk API, seperti yang dijelaskan di bagian berikut.

Apa itu paket produk API?

Paket produk API adalah kumpulan produk API yang ditampilkan kepada developer sebagai grup, dan biasanya dikaitkan dengan satu atau beberapa paket tarif untuk monetisasi. Anda dapat membuat beberapa paket produk API dan menyertakan satu atau beberapa produk API di setiap paket. Anda dapat menempatkan produk API yang sama atau beberapa produk API dalam berbagai paket dan mengaitkannya dengan paket tarif yang berbeda (atau sama).

Developer dapat mendaftarkan aplikasi mereka untuk menggunakan paket produk API hanya dengan membeli salah satu paket tarif yang berlaku saat ini. Paket produk API tidak akan terlihat oleh developer hingga Anda menambahkan dan memublikasikan (sebagai publik) paket tarif untuk paket produk (dengan tanggal mulai pada tanggal saat ini atau tanggal mendatang), seperti yang dijelaskan dalam Mengelola paket tarif. Setelah Anda menambahkan dan memublikasikan paket tarif, developer yang login ke portal developer Anda akan dapat memilih paket produk API dan memilih paket tarif. Atau, Anda dapat menyetujui paket tarif untuk developer menggunakan API pengelolaan. Untuk mengetahui informasi selengkapnya, lihat Membeli paket tarif yang dipublikasikan menggunakan API.

Setelah menambahkan produk API ke paket produk API, Anda mungkin perlu menyiapkan titik harga untuk produk API. Anda hanya perlu melakukannya jika semua hal berikut benar:

  • Anda menyiapkan paket tarif bagi hasil untuk produk API.
  • Developer menagih biaya kepada pihak ketiga untuk penggunaan resource dalam produk API.
  • Ada batasan minimum atau maksimum pada jumlah yang dapat ditagih oleh developer, dan Anda ingin memberi tahu developer tentang batasan tersebut.

Harga minimum dan maksimum ditampilkan dalam detail paket produk API.

Menjelajahi halaman Paket Produk

Akses halaman Paket Produk, seperti yang dijelaskan di bawah.

Edge

Untuk mengakses halaman paket produk API menggunakan UI Edge, pilih Publish > Monetization > Product Bundles di menu navigasi kiri.

Seperti yang ditunjukkan pada gambar sebelumnya, halaman Paket Produk memungkinkan Anda untuk:

Anda dapat mengelola produk API dalam paket produk atau menghapus paket produk (jika tidak ada paket tarif yang ditentukan) hanya menggunakan API.

Classic Edge (Private Cloud)

Untuk mengakses halaman paket API menggunakan UI Edge Klasik, pilih Publish > Packages di panel navigasi atas.

Halaman Paket API memungkinkan Anda:

  • Melihat informasi ringkasan untuk semua paket API, termasuk produk API yang ada di dalamnya dan paket tarif terkait
  • Menambahkan paket API
  • Mengedit paket API
  • Menambahkan dan mengelola paket tarif
  • Mengganti setelan akses paket tarif (publik/pribadi)
  • Memfilter daftar paket

Anda hanya dapat mengelola produk API dalam paket API atau menghapus paket API (jika tidak ada paket tarif yang ditentukan) menggunakan API.

Menambahkan paket produk

Untuk menambahkan paket produk API:

  1. Klik + API Product Bundle di halaman Product Bundles.
  2. Masukkan nama untuk paket produk API.
  3. Masukkan nama produk API di kolom Tambahkan Produk.

    Saat Anda mengetik nama produk API, daftar produk API yang berisi string akan ditampilkan di drop-down. Klik nama produk API untuk menambahkannya ke paket. Ulangi untuk menambahkan produk API lainnya.

  4. Ulangi langkah 3 untuk menambahkan nama produk API lainnya.
  5. Untuk setiap produk API yang Anda tambahkan, konfigurasi kebijakan perekaman transaksi.
  6. Klik Simpan Paket Produk.

Mengedit paket produk

Untuk mengedit paket produk:

  1. Di halaman Paket Produk, klik dalam baris paket produk yang ingin Anda edit.

    Panel paket produk ditampilkan.

  2. Edit kolom paket produk sesuai kebutuhan.

    Lihat mengonfigurasi kebijakan perekaman transaksi untuk mengetahui informasi selengkapnya.

  3. Klik Perbarui Paket Produk.

Mengelola paket produk API menggunakan API

Bagian berikut menjelaskan cara mengelola paket produk API menggunakan API.

Membuat paket produk API menggunakan API

Untuk membuat paket produk API, kirim permintaan POST ke /organizations/{org_name}/monetization-packages. Saat Anda mengeluarkan permintaan, Anda harus:

  • Identifikasi produk API yang akan disertakan dalam paket produk API.
  • Tentukan nama dan deskripsi untuk paket produk API.
  • Tetapkan indikator status untuk paket produk API. Indikator status dapat memiliki salah satu nilai berikut: CREATED, ACTIVE, INACTIVE. Saat ini, nilai indikator status yang Anda tentukan dipertahankan dalam paket produk API, tetapi tidak digunakan untuk tujuan apa pun.

Secara opsional, Anda dapat menentukan organisasi.

Lihat Properti konfigurasi paket produk API untuk mengetahui daftar opsi yang terekspos ke API.

Contoh:

$ 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

Berikut adalah contoh respons:

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

Perhatikan bahwa respons menyertakan informasi tambahan tentang produk API dan atribut kustom yang ditentukan untuk produk API tersebut. (Atribut kustom ditentukan saat Anda membuat produk API.) Atribut kustom untuk produk API dapat diperhitungkan ke dalam berbagai paket tarif. Misalnya, jika Anda menyiapkan paket kartu tarif, tempat Anda menagih biaya kepada developer untuk setiap transaksi, Anda dapat menetapkan tarif untuk paket berdasarkan atribut kustom seperti jumlah byte yang ditransmisikan dalam transaksi.

Mengelola produk API dalam paket produk API menggunakan API

Anda dapat menambahkan atau menghapus produk API dari paket produk API menggunakan API, seperti yang dijelaskan di bagian berikut.

Menambahkan produk API ke paket produk API

Untuk menambahkan produk API ke paket produk API, kirim permintaan POST ke organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, dengan {org_name} menentukan nama organisasi Anda, {package_id} menentukan nama paket produk API, dan {product_id} menentukan ID produk API.

Contoh:

$ 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

Menambahkan produk API ke paket produk API dengan paket tarif khusus produk API

Untuk menambahkan produk API ke paket produk API yang memiliki satu atau beberapa paket tarif khusus produk API yang ditentukan (kartu tarif atau pembagian keuntungan), kirim permintaan POST ke organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, dengan {org_name} menentukan nama organisasi Anda, {package_id} menentukan nama paket produk API, dan {product_id} menentukan ID produk API.

Anda harus meneruskan detail paket tarif untuk produk API baru di isi permintaan. Kecuali untuk array ratePlanRates, nilai paket tarif harus cocok dengan nilai yang ditentukan untuk semua produk API lainnya. Untuk mengetahui informasi selengkapnya tentang atribut paket tarif yang dapat ditentukan, lihat Properti konfigurasi untuk paket tarif.

Contoh:

$ 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

Menghapus produk API dari paket produk API

Untuk menghapus produk API dari paket produk API, kirim permintaan DELETE ke organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, dengan {org_name} menentukan nama organisasi Anda, {package_id} menentukan nama paket produk API, dan {product_id} menentukan ID produk API.

Contoh:

$ 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

Melihat paket produk API menggunakan API

Anda dapat mengambil paket produk API tertentu atau semua paket produk API dalam organisasi. Anda juga dapat mengambil paket produk API yang memiliki transaksi dalam rentang tanggal tertentu, yaitu hanya paket untuk pengguna yang memanggil aplikasi yang mengakses API dalam paket tersebut dalam tanggal mulai dan akhir yang ditentukan.

Melihat paket produk API tertentu: Untuk mengambil paket produk API tertentu, kirim permintaan GET ke /organizations/{org_name}/monetization-packages/{package_id}, dengan {package_id} adalah identifikasi paket produk API (ID ditampilkan dalam respons saat Anda membuat paket produk API). Contoh:

$ 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

Melihat semua paket produk API: Untuk mengambil semua paket produk API untuk organisasi, kirim permintaan GET ke /organizations/{org_name}/monetization-packages. Contoh:

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

Anda dapat meneruskan parameter kueri berikut untuk memfilter hasil:

Parameter Kueri Deskripsi
all Flag yang menentukan apakah akan menampilkan semua paket produk API. Jika disetel ke false, jumlah paket produk API yang ditampilkan per halaman ditentukan oleh parameter kueri size. Nilai defaultnya adalah false.
size Jumlah paket produk API yang ditampilkan per halaman. Defaultnya adalah 20. Jika parameter kueri all ditetapkan ke true, parameter ini akan diabaikan.
page Nomor halaman yang ingin Anda tampilkan (jika konten dipaginasi). Jika parameter kueri all ditetapkan ke true, parameter ini akan diabaikan.

Respons untuk melihat semua paket produk API dalam organisasi akan terlihat seperti ini (hanya sebagian respons yang ditampilkan):

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

Melihat paket produk API dengan transaksi: Untuk mengambil paket produk API dengan transaksi dalam rentang tanggal tertentu, kirim permintaan GET ke /organizations/{org_name}/packages-with-transactions. Saat mengirimkan permintaan, Anda harus menentukan tanggal mulai dan tanggal akhir untuk rentang tanggal sebagai parameter kueri. Misalnya, permintaan berikut mengambil paket produk API dengan transaksi selama bulan Agustus 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

Responsnya akan terlihat seperti ini (hanya sebagian respons yang ditampilkan):

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

Melihat paket produk API yang diterima oleh developer atau perusahaan menggunakan API

Lihat paket produk API yang diterima oleh developer atau perusahaan tertentu dengan mengirimkan permintaan GET ke API berikut:

  • /organizations/{org_name}/developers/{developer_id}/monetization-packages, dengan {developer_id} adalah ID (alamat email) developer.
  • /organizations/{org_name}/companies/{company_id}/monetization-packages, dengan {company_id} adalah ID perusahaan.

Saat mengirimkan permintaan, Anda dapat secara opsional menentukan parameter kueri berikut:

Parameter Kueri Deskripsi Default
current Flag yang menentukan apakah hanya mengambil paket produk API aktif (current=true) atau semua paket (current=false). Semua paket tarif dalam paket aktif dianggap tersedia. current=false
allAvailable Flag yang menentukan apakah akan mengambil semua paket produk API yang tersedia (allAvailable=true) atau hanya paket produk API yang tersedia khusus untuk developer atau perusahaan (allAvailable=false). Semua yang tersedia mengacu pada paket produk API yang tersedia untuk developer atau perusahaan tertentu selain developer atau perusahaan lain. Paket produk API yang tersedia khusus untuk perusahaan atau developer hanya berisi paket tarif yang tersedia secara eksklusif untuk perusahaan atau developer tersebut. allAvailable=true

Misalnya, permintaan berikut mengambil semua paket produk API yang diterima oleh developer tertentu:

$ 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

Permintaan berikut hanya mengambil paket API aktif yang diterima oleh perusahaan tertentu:

$ 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

Menghapus paket produk API menggunakan API

Anda dapat menghapus paket produk API hanya jika tidak ada paket tarif yang ditentukan.

Untuk menghapus paket produk API yang tidak memiliki paket tarif yang ditentukan, kirim permintaan DELETE ke organizations/{org_name}/monetization-packages/{package_id}, dengan {org_name} menentukan nama organisasi Anda dan {package_id} menentukan nama paket produk API.

Contoh:

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

Properti konfigurasi paket produk API untuk API

Opsi konfigurasi paket produk API berikut diekspos ke API:

Nama Deskripsi Default Wajib?
description

Deskripsi paket produk API.

T/A Ya
displayName

Nama yang akan ditampilkan untuk paket produk API (misalnya, dalam katalog paket API).

T/A Ya
name

Nama paket produk API.

T/A Ya
organization

Organisasi yang berisi paket produk API.

T/A Tidak
product

Array dari satu atau beberapa produk dalam paket produk API.

T/A Tidak
status

Indikator status untuk paket produk API. Indikator status dapat memiliki salah satu nilai berikut: CREATED, ACTIVE, INACTIVE.

T/A Ya