مدیریت بسته‌های محصول API

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

یک یا چند محصول API را در یک کانتینر درآمدزا، که به آن بسته محصول API گفته می‌شود، همانطور که در بخش‌های بعدی توضیح داده شده است، دسته‌بندی کنید.

بسته محصول API چیست؟

یک بسته محصول API مجموعه‌ای از محصولات API است که به صورت گروهی به توسعه‌دهندگان ارائه می‌شود و معمولاً با یک یا چند طرح نرخ برای کسب درآمد مرتبط است. شما می‌توانید چندین بسته محصول API ایجاد کنید و یک یا چند محصول API را در هر کدام بگنجانید. می‌توانید یک یا چند محصول API را در بسته‌های مختلف قرار دهید و آنها را با طرح‌های نرخ متفاوت (یا یکسان) مرتبط کنید.

توسعه‌دهندگان می‌توانند برنامه‌های خود را برای استفاده از یک بسته محصول API فقط با خرید یکی از طرح‌های نرخ فعلی ثبت کنند. یک بسته محصول API تا زمانی که یک طرح نرخ برای بسته محصول (با تاریخ شروع تاریخ فعلی یا تاریخ آینده) اضافه و منتشر نکنید (به صورت عمومی)، همانطور که در مدیریت طرح‌های نرخ توضیح داده شده است، برای توسعه‌دهندگان قابل مشاهده نخواهد بود. پس از اضافه کردن و انتشار یک طرح نرخ، توسعه‌دهندگانی که وارد پورتال توسعه‌دهندگان شما می‌شوند، می‌توانند بسته محصول API و طرح نرخ را انتخاب کنند. به عنوان یک روش جایگزین، می‌توانید یک طرح نرخ را برای یک توسعه‌دهنده با استفاده از API مدیریت بپذیرید. برای اطلاعات بیشتر، به خرید طرح‌های نرخ منتشر شده با استفاده از API مراجعه کنید.

پس از افزودن یک محصول API به بسته محصول API، ممکن است لازم باشد برای محصول API قیمت تعیین کنید. این کار را فقط در صورتی باید انجام دهید که همه موارد زیر صادق باشد:

  • شما یک طرح نرخ تقسیم درآمد برای محصول API تنظیم می‌کنید.
  • توسعه‌دهندگان برای استفاده از منابع در محصول API از اشخاص ثالث هزینه دریافت می‌کنند.
  • یک محدودیت حداقل یا حداکثری در مورد مبلغی که توسعه‌دهندگان می‌توانند دریافت کنند وجود دارد و شما می‌خواهید توسعه‌دهندگان را از این محدودیت مطلع کنید.

حداقل و حداکثر قیمت‌ها در جزئیات بسته محصول API نمایش داده می‌شوند.

بررسی صفحه بسته‌های محصول

همانطور که در زیر توضیح داده شده است، به صفحه بسته‌های محصول دسترسی پیدا کنید.

لبه

برای دسترسی به صفحه بسته‌های محصول API با استفاده از رابط کاربری Edge، در نوار ناوبری سمت چپ، گزینه Publish > Monetization > Product Bundles را انتخاب کنید.

همانطور که در شکل قبلی مشخص شده است، صفحه بسته‌های محصول به شما امکان می‌دهد:

شما می‌توانید محصولات API را در یک بسته محصول مدیریت کنید یا یک بسته محصول را (در صورت عدم تعریف طرح‌های نرخ) فقط با استفاده از API حذف کنید .

لبه کلاسیک (ابر خصوصی)

برای دسترسی به صفحه بسته‌های API با استفاده از رابط کاربری کلاسیک اج، در نوار ناوبری بالا، گزینه Publish > Packages را انتخاب کنید.

صفحه بسته‌های API شما را قادر می‌سازد تا:

  • مشاهده خلاصه اطلاعات مربوط به همه بسته‌های API شامل محصولات API موجود در آنها و طرح‌های نرخ مرتبط
  • اضافه کردن یک بسته API
  • ویرایش یک بسته API
  • افزودن و مدیریت طرح‌های تعرفه‌ای
  • تنظیمات دسترسی به طرح تعرفه (عمومی/خصوصی) را تغییر دهید
  • فیلتر کردن لیست بسته‌ها

شما می‌توانید محصولات API را در یک بسته API مدیریت کنید یا یک بسته API را (در صورت عدم تعریف طرح‌های نرخ) فقط با استفاده از API حذف کنید .

اضافه کردن بسته محصول

برای افزودن بسته محصول API:

  1. در صفحه بسته‌های محصول، روی + بسته محصول API کلیک کنید.
  2. یک نام برای بسته محصول API وارد کنید.
  3. نام یک محصول API را در فیلد «افزودن محصول» وارد کنید.

    همزمان با تایپ نام یک محصول API، فهرستی از محصولات API که حاوی رشته هستند در یک منوی کشویی نمایش داده می‌شود. برای افزودن آن به بسته، روی نام محصول API کلیک کنید. برای افزودن محصولات API بیشتر، این کار را تکرار کنید.

  4. برای افزودن نام‌های محصول API بیشتر، مرحله ۳ را تکرار کنید.
  5. برای هر محصول API که اضافه می‌کنید، سیاست ثبت تراکنش را پیکربندی کنید .
  6. روی ذخیره بسته محصول کلیک کنید.

ویرایش بسته محصول

برای ویرایش بسته محصول:

  1. در صفحه بسته‌های محصول ، روی ردیف بسته محصولی که می‌خواهید ویرایش کنید، کلیک کنید.

    پنل بسته محصول نمایش داده می‌شود.

  2. در صورت نیاز، فیلدهای بسته محصول را ویرایش کنید.

    برای اطلاعات بیشتر به پیکربندی سیاست ثبت تراکنش مراجعه کنید.

  3. روی به‌روزرسانی بسته محصول کلیک کنید.

مدیریت بسته‌های محصول API با استفاده از API

بخش‌های زیر نحوه مدیریت بسته‌های محصول API را با استفاده از API شرح می‌دهند.

ایجاد یک بسته محصول API با استفاده از API

برای ایجاد یک بسته محصول API، یک درخواست POST به /organizations/ {org_name} /monetization-packages ارسال کنید. هنگام ارسال درخواست، باید:

  • محصولات API که باید در بسته محصول API قرار گیرند را شناسایی کنید.
  • یک نام و توضیح برای بسته محصول API مشخص کنید.
  • یک نشانگر وضعیت برای بسته محصول API تنظیم کنید. نشانگر وضعیت می‌تواند یکی از مقادیر زیر را داشته باشد: ایجاد شده، فعال، غیرفعال. در حال حاضر، مقدار نشانگر وضعیتی که شما مشخص می‌کنید در بسته محصول 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، یک درخواست POST به organizations/ {org_name} /monetization-packages/ {package_id} /products/ {product_id} ارسال کنید، که در آن {org_name} نام سازمان شما، {package_id} نام بسته محصول API و {product_id} شناسه محصول API را مشخص می‌کند.

برای مثال:

$ 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 (کارت نرخ یا سهم درآمد) تعریف شده است، یک درخواست POST به organizations/ {org_name} /monetization-packages/ {package_id} /products/ {product_id} ارسال کنید، که در آن {org_name} نام سازمان شما، {package_id} نام بسته محصول API و {product_id} شناسه محصول API را مشخص می‌کند.

شما باید جزئیات طرح نرخ را برای محصول 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، یک درخواست DELETE به organizations/ {org_name} /monetization-packages/ {package_id} /products/ {product_id} ارسال کنید، که در آن {org_name} نام سازمان شما، {package_id} نام بسته محصول API و {product_id} شناسه محصول API را مشخص می‌کند.

برای مثال:

$ 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 خاص، یک درخواست GET به /organizations/ {org_name} /monetization-packages/ {package_id} ارسال کنید، که در آن {package_id} شناسه بسته محصول API است (شناسه هنگام ایجاد بسته محصول API در پاسخ بازگردانده می‌شود). برای مثال:

$ 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 برای یک سازمان، یک درخواست GET به /organizations/ {org_name} /monetization-packages ارسال کنید. برای مثال:

$ 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 که در هر صفحه بازگردانده می‌شوند توسط پارامتر query size تعریف می‌شود. مقدار پیش‌فرض false است.
size تعداد بسته‌های محصول API که در هر صفحه برگردانده می‌شوند. مقدار پیش‌فرض ۲۰ است. اگر پارامتر all query روی true تنظیم شده باشد، این پارامتر نادیده گرفته می‌شود.
page شماره صفحه‌ای که می‌خواهید برگردانید (اگر محتوا صفحه‌بندی شده باشد). اگر پارامتر all query روی 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 به همراه تراکنش‌ها در یک محدوده تاریخی مشخص، یک درخواست GET به /organizations/ {org_name} /packages-with-transactions ارسال کنید. هنگام ارسال درخواست، باید به عنوان پارامترهای پرس‌وجو، تاریخ شروع و تاریخ پایان را برای محدوده تاریخی مشخص کنید. به عنوان مثال، درخواست زیر بسته‌های محصول 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 پذیرفته شده‌اند

با ارسال درخواست GET به API های زیر، بسته‌های محصول API پذیرفته شده توسط یک توسعه‌دهنده یا شرکت خاص را مشاهده کنید:

  • /organizations/ {org_name} /developers/ {developer_id} /monetization-packages ، که در آن {developer_id} شناسه (آدرس ایمیل) توسعه‌دهنده است.
  • /organizations/ {org_name} /companies/ {company_id} /monetization-packages ، که در آن {company_id} شناسه شرکت است.

هنگام ارسال درخواست، می‌توانید پارامترهای پرس‌وجوی زیر را به صورت اختیاری مشخص کنید:

پارامتر پرس و جو توضیحات پیش‌فرض
current پرچمی که مشخص می‌کند آیا فقط بسته‌های فعال محصول API بازیابی شوند ( current=true ) یا همه بسته‌ها ( current=false ). تمام طرح‌های نرخ در یک بسته فعال، در دسترس در نظر گرفته می‌شوند. current=false
allAvailable پرچمی که مشخص می‌کند آیا تمام بسته‌های محصول API موجود ( allAvailable=true ) یا فقط بسته‌های محصول API موجود مخصوص توسعه‌دهنده یا شرکت ( allAvailable=false ) بازیابی شوند. «همه موجود» به بسته‌های محصول 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 که هیچ طرح نرخی برای آن تعریف نشده است، یک درخواست DELETE به organizations/ {org_name} /monetization-packages/ {package_id} ارسال کنید، که در آن {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.

ناموجود بله
displayName

نامی که برای بسته محصول API نمایش داده می‌شود (برای مثال، در کاتالوگی از بسته‌های API).

ناموجود بله
name

نام بسته محصول API.

ناموجود بله
organization

سازمانی که شامل بسته محصول API است.

ناموجود خیر
product

آرایه‌ای از یک یا چند محصول در بسته محصول API.

ناموجود خیر
status

یک نشانگر وضعیت برای بسته محصول API. نشانگر وضعیت می‌تواند یکی از مقادیر زیر را داشته باشد: ایجاد شده، فعال، غیرفعال.

ناموجود بله