استخدام واجهة برمجة التطبيقات والتقارير غير المتزامنة

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

توفر Edge Analytics مجموعة غنية من لوحات المعلومات التفاعلية وأدوات إنشاء التقارير المخصصة والإمكانات ذات الصلة. ومع ذلك، يتم تصميم هذه الميزات لتكون تفاعلية: يمكنك إرسال طلب الحصول على واجهة برمجة تطبيقات أو واجهة مستخدم، ويتم حظر الطلب إلى أن يردّ خادم الإحصاءات.

ومع ذلك، يمكن أن تنتهي مهلة طلبات الإحصاءات إذا استغرق اكتمالها وقتًا طويلاً جدًا. إذا كان طلب الاستعلام يحتاج إلى معالجة كمية كبيرة من البيانات (على سبيل المثال، 100 غيغابايت)، فقد يفشل بسبب انتهاء المهلة.

تتيح لك المعالجة غير المتزامنة لطلب البحث البحث عن مجموعات بيانات كبيرة جدًا واسترداد النتائج في وقت لاحق. قد تفكر في استخدام استعلام غير متصل عندما تجد أن مهلة الاستعلامات التفاعلية تنتهي. تتضمن بعض الحالات التي قد تكون فيها معالجة الاستعلام غير المتزامنة بديلاً جيدًا لما يلي:

  • تحليل وإنشاء التقارير التي تغطي فترات زمنية طويلة.
  • تحليل البيانات باستخدام مجموعة متنوعة من أبعاد التجميع والقيود الأخرى التي تضيف تعقيدًا إلى طلب البحث.
  • إدارة طلبات البحث عندما تجد أن أحجام البيانات قد ازدادت بشكلٍ كبير لبعض المستخدمين أو المؤسسات.

يصف هذا المستند كيفية بدء طلبات بحث غير متزامنة باستخدام واجهة برمجة التطبيقات. يمكنك أيضًا استخدام واجهة المستخدم، كما هو موضّح في تشغيل تقرير مخصّص.

مقارنة واجهة برمجة التطبيقات لإعداد التقارير بواجهة المستخدم

يشرح إنشاء التقارير المخصّصة وإدارتها طريقة استخدام واجهة مستخدم Edge لإنشاء تقارير مخصّصة وتشغيلها. يمكنك تشغيل هذه التقارير بشكل متزامن أو بشكل غير متزامن.

تنطبق معظم مفاهيم إنشاء التقارير المخصّصة باستخدام واجهة المستخدم على استخدام واجهة برمجة التطبيقات. أي عند إنشاء تقارير مخصّصة باستخدام واجهة برمجة التطبيقات، عليك تحديد metrics والسمات والفلاتر المضمّنة في Edge، وأي مقاييس مخصّصة أنشأتها باستخدام سياسة StatisticsCollector.

تكمن الاختلافات الرئيسية بين التقارير التي يتم إنشاؤها في واجهة المستخدم وواجهة برمجة التطبيقات في أنّ التقارير التي يتم إنشاؤها باستخدام واجهة برمجة التطبيقات تتم كتابتها في ملفات بتنسيق CSV أو JSON (محدّدة بسطور جديدة) بدلاً من تقرير مرئي يظهر في واجهة المستخدم.

الحدود القصوى المسموح بها في نظام Apigee المختلط

يفرض مختلط Apigee حدًا أقصى لحجم مجموعة بيانات النتائج يبلغ 30 ميغابايت.

كيفية إجراء طلب بحث غير متزامن عن التحليلات

يمكنك إجراء طلبات بحث غير متزامنة عن الإحصاءات في ثلاث خطوات:

  1. أرسِل طلب البحث.

  2. الحصول على حالة طلب البحث

  3. استرداد نتائج طلب البحث

الخطوة 1. إرسال طلب البحث

يجب إرسال طلب POST إلى واجهة برمجة التطبيقات /queries. تطلب واجهة برمجة التطبيقات هذه من متصفّح Edge معالجة طلبك في الخلفية. إذا نجح إرسال الاستعلام، فإن واجهة برمجة التطبيقات تعرض الحالة 201 ومعرفًا ستستخدمه للإشارة إلى الاستعلام في خطوات لاحقة.

مثال:

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries -d @json-query-file
-u orgAdminEmail:password

نص الطلب هو وصف JSON لطلب البحث. في نص JSON، حدِّد metrics والسمات والفلاتر التي تحدّد التقرير.

في ما يلي مثال على ملف json-query-file:

{ 
   "metrics":  [
     {
         "name": "message_count",
         "function": "sum",
         "alias": "sum_txn"
    }
        ],
    "dimensions": ["apiproxy"],
    "timeRange": "last24hours",
    "limit": 14400,
    "filter":"(message_count ge 0)"         
}

راجِع القسم لمحة عن نص الطلب أدناه للاطّلاع على وصف كامل لبنية نص الطلب.

نموذج الإجابة:

لاحظ أن معرف الطلب 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd متضمن في الرد. بالإضافة إلى حالة HTTP 201، تعني state في enqueued أنّ الطلب نجح.

HTTP/1.1 201 Created

{  
  "self":"/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
  "created":"2018-05-10T07:11:10Z",
  "state":"enqueued",
  "error":"false",
}

الخطوة 2. التعرُّف على حالة طلب البحث

يمكنك إجراء استدعاء GET لطلب حالة الطلب. أنت تقدم معرف الاستعلام الذي تم عرضه من استدعاء POST. مثال:

curl -X GET -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd
-u email:password

نماذج الإجابات:

إذا كان الطلب لا يزال قيد التقدّم، ستحصل على ردّ مثل هذا، حيث تكون قيمة state هي running:

{
    "self": "/organizations/myorg/environments/myenv/queries/1577884c-4f48-4735-9728-5da4b05876ab",
    "state": "running",
    "created": "2018-02-23T14:07:27Z",
    "updated": "2018-02-23T14:07:54Z"
}

بعد اكتمال الاستعلام بنجاح، سترى ردًا مثل هذا، حيث يتم ضبط state على completed:

{
      "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
      "state": "completed",
      "result": {
        "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result",
        "expires": "2017-05-22T14:56:31Z"
      },
      "resultRows": 1,
      "resultFileSize": "922KB",
      "executionTime": "11 sec",
      "created": "2018-05-10T07:11:10Z",
      "updated": "2018-05-10T07:13:22Z"
}

الخطوة 3. استرداد نتائج طلب البحث

بعد أن تصبح حالة طلب البحث completed، يمكنك استخدام واجهة برمجة تطبيقات الحصول على النتائج لاسترداد النتائج حيث يكون معرّف طلب البحث 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd مرة أخرى.

curl -X GET -H "Content-Type:application/json" -O -J https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result
-u email:password

لاسترداد الملف الذي تم تنزيله، يجب تهيئة الأداة التي تستخدمها حتى تحفظ الملف الذي تم تنزيله على نظامك. مثال:

  • إذا كنت تستخدم cURL، يمكنك استخدام خيارات -O -J، كما هو موضّح أعلاه.

  • إذا كنت تستخدم Postman، عليك تحديد الزر Save and Download (حفظ وتنزيل). في هذه الحالة، يتم تنزيل ملف ZIP باسم response.

  • إذا كنت تستخدم متصفّح Chrome، يتم قبول عملية التنزيل تلقائيًا.

إذا نجح الطلب وكانت هناك نتائج بقيمة غير صفرية، يتم تنزيل النتيجة إلى العميل كملف JSON مضغوط (محدّد بسطور جديدة). سيكون اسم الملف الذي تم تنزيله على النحو التالي:

OfflineQueryResult-<query-id>.zip

مثال:

OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip

يحتوي ملف ZIP على ملف أرشيف .gz لنتائج JSON. للوصول إلى ملف JSON، يُرجى فك ضغط ملف التنزيل ثم استخدام الأمر gzip لاستخراج ملف JSON:

unzip OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
gzip -d QueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd-000000000000.json.gz

لمحة عن نص الطلب

يصف هذا القسم كل المعلَمات التي يمكنك استخدامها في نص طلب JSON لطلب بحث. لمعرفة تفاصيل عن المقاييس والسمات التي يمكنك استخدامها في طلب البحث، يُرجى الاطّلاع على مرجع "إحصاءات Google".

{  
   "metrics":[  
      {  
        "name":"metric_name",
        "function":"aggregation_function",
        "alias":"metric_dispaly_name_in_results",
        "operator":"post_processing_operator",
        "value":"post_processing_operand"
      },
   ...
   ],
   "dimensions":[  
      "dimension_name",
      ...
   ],
   "timeRange":"time_range",
   "limit":results_limit,
   "filter":"filter",
   "groupByTimeUnit": "grouping",
   "outputFormat": "format",
   "csvDelimiter": "delimiter"
}
الموقع الوصف مطلوب؟
metrics

مصفوفة من المقاييس. يمكنك تحديد مقياس واحد أو أكثر لطلب بحث يتضمّن كلّ مقياس. يجب إدخال اسم المقياس فقط:

  • name: (مطلوبة) اسم المقياس كما هو محدّد في الجدول على metrics.
  • function: (اختيارية) دالة التجميع مثل avg أو min أو max أو sum.

    لا تتيح بعض المقاييس كل وظائف التجميع. تحتوي المستندات حول metrics على جدول يحدد اسم المقياس والدالة (avg وmin وmax وsum) المتوافقة مع المقياس.

  • alias: (اختياري) اسم الملكية التي تحتوي على بيانات المقياس في الناتج. وإذا تم حذفها، يتم ضبطها تلقائيًا على اسم المقياس مع اسم دالة التجميع.
  • operator: (اختياري) عملية يتم تنفيذها على المقياس بعد حساب قيمته. تتوافق مع السمة value. تشمل العمليات المتاحة ما يلي: + - / % *.
  • value: (اختياري) القيمة المطبَّقة على المقياس المحسوب من خلال operator المحدد.

تحدّد السمتان operator وvalue عملية ما بعد المعالجة التي يتم إجراؤها على المقياس. على سبيل المثال، إذا حدّدت المقياس response_processing_latency، يعرض المقياس متوسط وقت استجابة معالجة الاستجابة بوحدة مللي ثانية. لتحويل الوحدات إلى ثوانٍ، اضبط operator على "/" وvalue إلى ”1000.0“:

"metrics":[  
  {  
    "name":"response_processing_latency",
    "function":"avg",
    "alias":"average_response_time_in_seconds",
    "operator":"/",
    "value":"1000"
  }
]

لمزيد من المعلومات، اطّلِع على مرجع المقاييس والسمات والفلاتر في "إحصاءات Google".

لا
dimensions مصفوفة من السمات لتجميع المقاييس. لمزيد من المعلومات، يمكنك الاطّلاع على قائمة السمات المتاحة. يمكنك تحديد سمات متعددة. لا
timeRange النطاق الزمني لطلب البحث.

يمكنك استخدام السلاسل المحددة مسبقًا التالية لتحديد النطاق الزمني:

  • last60minutes
  • last24hours
  • last7days

يمكنك بدلاً من ذلك تحديد timeRange على شكل بنية تصف الطوابع الزمنية للبداية والنهاية بتنسيق ISO: yyyy-mm-ddThh:mm:ssZ. مثال:

"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
نعم
limit الحدّ الأقصى لعدد الصفوف التي يمكن عرضها في النتيجة. لا
filter تعبير منطقي يمكن استخدامه لفلترة البيانات يمكن دمج تعبيرات الفلاتر باستخدام عبارات AND/OR ويجب وضعها بين قوسين بالكامل لتجنب الغموض. اطّلِع على مرجع المقاييس والسمات والفلاتر في "إحصاءات Google" للحصول على مزيد من المعلومات عن الحقول المتاحة للفلترة. لمزيد من المعلومات عن الرموز المميّزة التي تستخدمها لإنشاء تعبيرات الفلاتر، يُرجى الاطّلاع على بنية تعبير الفلتر. لا
groupByTimeUnit الوحدة الزمنية المستخدَمة لتجميع مجموعة النتائج. تشمل القيم الصالحة: second أو minute أو hour أو day أو week أو month.

إذا كان طلب البحث يتضمن groupByTimeUnit، تكون النتيجة تجميعًا استنادًا إلى الوحدة الزمنية المحدّدة، ولا يتضمن الطابع الزمني الناتج دقة المللي ثانية. إذا حذف طلب بحث groupByTimeUnit، يتضمن الطابع الزمني الناتج دقة المللي ثانية.

لا
outputFormat تنسيق الإخراج تشمل القيم الصالحة: csv أو json. يتم ضبط السياسة تلقائيًا على json بما يتوافق مع تنسيق JSON المحدّد بسطور جديدة.

ملاحظة: اضبط محدِّد نتائج ملف CSV باستخدام السمة csvDelimiter.

لا
csvDelimiter هو المحدِّد المُستخدَم في ملف CSV، في حال ضبط outputFormat على csv. يتم ضبط القيمة التلقائية على الحرف , (فاصلة). تتضمّن أحرف المحدِّد المتوافقة فاصلة (,) وعلامة الشرطة الرأسية (|) وعلامة التبويب (\t). لا

بنية تعبير الفلتر

يصف قسم المرجع هذا الرموز المميّزة التي يمكنك استخدامها لإنشاء تعبيرات فلاتر في نص الطلب. على سبيل المثال، يستخدم التعبير التالي الرمز المميز "ge" (أكبر من أو يساوي):

"filter":"(message_count ge 0)"
الرمز المميز الوصف أمثلة
in التضمين في القائمة
(apiproxy in 'ethorapi','weather-api')

(apiproxy in 'ethorapi')

(apiproxy in 'Search','ViewItem')

(response_status_code in 400,401,500,501)

ملاحظة: يجب أن تكون السلاسل بين علامتَي اقتباس.

notin الاستثناء من القائمة
(response_status_code notin 400,401,500,501)
eq يساوي (==))
(response_status_code eq 504)

(apiproxy eq 'non-prod')
ne لا يساوي (!=)
(response_status_code ne 500)

(apiproxy ne 'non-prod')
gt أكبر من (>))
(response_status_code gt 500)
lt أقل من (<))
(response_status_code lt 500)
ge أكبر من أو يساوي (>=)
(target_response_code ge 400)
le أصغر من أو يساوي (<=)
(target_response_code le 300)
like لعرض true إذا كان نمط السلسلة مطابقًا للنمط المقدم.

يتطابق المثال على اليمين على النحو التالي:

- أي قيمة تحتوي على الكلمة "شراء"

- أي قيمة تنتهي بـ "item"

- أي قيمة تبدأ بـ "Prod"

- أي قيمة تبدأ بـ 4، تكون ملاحظة response_status_code رقمية

(apiproxy like '%buy%')

(apiproxy like '%item')

(apiproxy like 'Prod%')
not like تعرض القيمة false إذا كان نمط السلسلة يطابق النمط المقدم.
(apiproxy not like '%buy%')

(apiproxy not like '%item')

(apiproxy not like 'Prod%')
and يتيح لك استخدام منطق "و" لتضمين أكثر من تعبير فلتر واحد. يتضمّن الفلتر بيانات تستوفي جميع الشروط.
(target_response_code gt 399) and (response_status_code ge 400)
or يتيح لك استخدام منطق "أو" لتقييم تعبيرات فلاتر مختلفة محتملة. يتضمّن الفلتر بيانات تستوفي شرطًا واحدًا على الأقل.
(response_size ge 1000) or (response_status_code eq 500)

القيود والإعدادات التلقائية

في ما يلي قائمة بالقيود والإعدادات التلقائية لميزة معالجة طلبات البحث غير المتزامنة.

القيد تلقائي الوصف
الحد الأقصى المسموح به لاستدعاء طلب البحث الاطّلاع على الوصف يمكنك إجراء ما يصل إلى سبع طلبات في الساعة لواجهة برمجة التطبيقات لإدارة /queries لبدء تقرير غير متزامن. في حال تجاوزك حصة المكالمات، ستعرض واجهة برمجة التطبيقات استجابة HTTP 429.
الحد الأقصى المسموح به لطلبات البحث النشطة 10 يمكن أن يكون لديك ما يصل إلى 10 طلبات بحث نشطة لمؤسسة/بيئة.
الحد الأدنى لوقت تنفيذ طلب البحث ٦ ساعات سيتم إنهاء طلبات البحث التي تستغرق أكثر من 6 ساعات.
النطاق الزمني لطلب البحث الاطّلاع على الوصف يبلغ الحد الأقصى للنطاق الزمني المسموح به لطلب البحث 365 يومًا.
الحدّ الأقصى للسمات والمقاييس 25 الحد الأقصى لعدد السمات والمقاييس التي يمكنك تحديدها في حمولة طلب البحث.

لمحة عن نتائج طلبات البحث

في ما يلي مثال على نتيجة بتنسيق JSON. يتكون الناتج من صفوف JSON مفصولة بمحدِّد سطر جديد:

{"message_count":"10209","apiproxy":"guest-auth-v3","hour":"2018-08-07 19:26:00 UTC"}
{"message_count":"2462","apiproxy":"carts-v2","hour":"2018-08-06 13:16:00 UTC"}    
…

ويمكنك استرجاع النتائج من عنوان URL حتى تاريخ انتهاء صلاحية البيانات في المستودع. يُرجى الاطّلاع على القيود والإعدادات التلقائية.

أمثلة

المثال 1: مجموع أعداد الرسائل

طلب بحث للحصول على مجموع أعداد الرسائل خلال آخر 60 دقيقة

طلب بحث

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @last60minutes.json
-u orgAdminEmail:password

نص الطلب من last60minutes.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":"last60minutes"
}

المثال 2: نطاق زمني مخصص

طلب بحث باستخدام نطاق زمني مخصّص

طلب بحث

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1 /organizations/myorg/environments/test/queries"
-d @last60minutes.json
-u orgAdminEmail:password

نص الطلب من last60minutes.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

المثال 3: المعاملات في الدقيقة

طلب بحث عن المقياس للمعاملات في الدقيقة

طلب بحث

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @tpm.json
-u orgAdminEmail:password

نص الطلب من tpm.json

{  
   "metrics":[  
      {  
         "name":"tpm"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-07-01T11:00:00Z",
      "end":"2018-07-30T11:00:00Z"
   }
}

نموذج نتيجة

مقتطف من ملف النتائج:

{"tpm":149995.0,"apiproxy":"proxy_1","minute":"2018-07-06 12:16:00 UTC"}
{"tpm":149998.0,"apiproxy":"proxy_1","minute":"2018-07-09 15:12:00 UTC"}
{"tpm":3.0,"apiproxy":"proxy_2","minute":"2018-07-11 16:18:00 UTC"}
{"tpm":148916.0,"apiproxy":"proxy_1","minute":"2018-07-15 17:14:00 UTC"}
{"tpm":150002.0,"apiproxy":"proxy_1","minute":"2018-07-18 18:11:00 UTC"}
...

المثال 4: استخدام تعبير فلتر

طلب بحث باستخدام تعبير فلتر يستخدم عامل تشغيل منطقي.

طلب بحث

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @filterCombo.json
-u orgAdminEmail:password

نص الطلب من filterCombo.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "filter":"(apiproxy ne \u0027proxy_1\u0027) and (apiproxy ne \u0027proxy_2\u0027)",
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

المثال 5: تمرير التعبير في مَعلمة المقاييس

طلب بحث يحتوي على تعبير يتم تمريره كجزء من معلمة المقاييس. يمكنك استخدام تعبيرات بسيطة ذات مُعامِل واحد فقط.

طلب بحث

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries" 
-d @metricsExpression.json
-u orgAdminEmail:password

نص الطلب من MetricsExpression.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum",
         "operator":"/",
         "value":"7"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":10,
   "timeRange":"last60minutes"
}

كيفية إنشاء طلب بحث غير متزامن في تقرير تحقيق الربح

يمكنك تسجيل كل معاملات تحقيق الربح الناجحة خلال نطاق زمني معيّن لمجموعة محدّدة من المعايير باستخدام الخطوات الموضّحة في هذا القسم.

كما هي الحال مع طلبات البحث غير المتزامنة في الإحصاءات، يمكنك إجراء طلبات بحث غير متزامنة في تقرير تحقيق الربح باتّباع ثلاث خطوات: (1) إرسال طلب البحث و(2) الحصول على حالة طلب البحث و (3) استرداد نتائجه.

الخطوة الأولى موضحة أدناه إرسال طلب البحث.

الخطوتان 2 و3 هي نفسها تمامًا بالنسبة إلى طلبات البحث غير المتزامنة في التحليلات. لمزيد من المعلومات، اطّلِع على كيفية إنشاء طلب بحث غير متزامن عن الإحصاءات.

لإرسال طلب لتقرير تحقيق الربح غير المتزامن، يُرجى إرسال طلب POST إلى /mint/organizations/org_id/async-reports.

يمكنك اختياريًا تحديد البيئة من خلال تمرير مَعلمة طلب البحث environment. إذا لم يتم تحديد معلَمة طلب البحث، يتم ضبط القيمة التلقائية لمعلَمة طلب البحث على prod. مثال:

/mint/organizations/org_id/async-reports?environment=prod

في نص الطلب، حدِّد معايير البحث التالية.

الاسم الوصف تلقائي هل هو مطلوب؟
appCriteria رقم التعريف والمؤسسة لتطبيق معيّن لتضمينهما في التقرير. في حال عدم تحديد هذه السمة، يتم تضمين جميع التطبيقات في التقرير. لا ينطبق لا
billingMonth شهر الفوترة للتقرير، مثل تموز (يوليو). لا ينطبق نعم
billingYear سنة الفوترة للتقرير، مثل 2015. لا ينطبق نعم
currencyOption عملة التقرير وتشمل القيم الصالحة ما يلي:
  • LOCAL - يتم عرض كل سطر من التقرير باستخدام خطة الأسعار السارية. وهذا يعني أنّه قد تتوفّر عملات متعدّدة في التقرير نفسه إذا كان مطوّرو البرامج لديهم خطط تستخدم عملات مختلفة.
  • EUR - يتم تحويل المعاملات بالعملة المحلية وعرضها باليورو.
  • GPB - يتم تحويل المعاملات بالعملة المحلية وعرضها بالجنيه الإسترليني.
  • USD - يتم تحويل المعاملات بالعملة المحلية وعرضها بالدولار الأمريكي.

إذا اخترت اليورو أو الجنيه الإسترليني أو الدولار الأمريكي، سيعرض التقرير جميع المعاملات باستخدام تلك العملة الفردية، استنادًا إلى سعر الصرف الساري في تاريخ المعاملة.

لا ينطبق لا
devCriteria

رقم تعريف مطوّر البرامج أو عنوان البريد الإلكتروني، واسم المؤسسة لمطوّر محدّد ليتم تضمينه في التقرير. في حال عدم تحديد هذه السمة، يتم تضمين جميع المطوّرين في التقرير.

مثال:

"devCriteria":[{
    "id":"RtHAeZ6LtkSbEH56",
    "orgId":"my_org"}
]
لا ينطبق لا
fromDate تاريخ بدء التقرير بالتوقيت العالمي المنسّق (UTC). لا ينطبق نعم
monetizationPakageIds رقم تعريف واحدة أو أكثر من حِزم واجهة برمجة التطبيقات لتضمينها في التقرير. إذا لم يتم تحديد هذه السمة، يتم تضمين جميع حِزم واجهة برمجة التطبيقات في التقرير. لا ينطبق لا
productIds معرّف منتج واحد أو أكثر من منتجات واجهة برمجة التطبيقات لتضمينها في التقرير إذا لم يتم تحديد هذه السمة، يتم تضمين جميع منتجات واجهة برمجة التطبيقات في التقرير. لا ينطبق لا
ratePlanLevels

نوع خطة الأسعار التي سيتم تضمينها في التقرير. وتشمل القيم الصالحة ما يلي:

  • DEVELOPER - خطة السعر الخاصة بالمطوّرين
  • STANDARD - خطة السعر العادي

في حال عدم تحديد هذا الموقع، يتم تضمين كل من خطط الأسعار الخاصة بالمطوّرين وخطط الأسعار العادية في التقرير.

لا ينطبق لا
toDate تاريخ انتهاء التقرير بالتوقيت العالمي المنسّق (UTC). لا ينطبق نعم

على سبيل المثال، يُنشئ الطلب التالي تقريرًا عن تحقيق الربح غير المتزامن خلال شهر حزيران (يونيو) 2017 لمنتج واجهة برمجة التطبيقات ورقم تعريف المطوّر المحدّدَين. يتمّ الإبلاغ عن تواريخ وأوقات fromDate وtoDate بالتوقيت العالمي المُتّفق عليه/توقيت غرينيتش ويمكن أن تتضمّن أوقاتًا.

curl -H "Content-Type:application/json" -X POST -d \
'{
      "fromDate":"2017-06-01 00:00:00",
      "toDate":"2017-06-30 00:00:00",    
     "productIds": [
        "a_product"
    ],
    "devCriteria": [{
        "id": "AbstTzpnZZMEDwjc",
        "orgId": "myorg"
    }]

 }' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/async-reports?environment=prod" \
-u orgAdminEmail:password