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

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

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

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

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

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

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

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

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

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

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

الحدود في Apigee Hybrid

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

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

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

  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، تحديد المقاييس والسمات والفلاتر التي تحدّد التقرير

في ما يلي مثال على ملف 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، يمكنك استخدام واجهة برمجة التطبيقات get results لاسترداد النتائج، حيث يكون رقم تعريف طلب البحث مرة أخرى 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، عليك النقر على الزر حفظ وتنزيل. في هذه الحالة، يتم تنزيل ملف 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.

    لا تتيح بعض المقاييس جميع وظائف التجميع. تحتوي مستندات المقاييس على جدول يحدّد اسم المقياس والدالة (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 ساعات سيتم إنهاء طلبات البحث التي تستغرق أكثر من 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: المعاملات في الدقيقة

ابحث عن مقياس عدد المعاملات في الدقيقة (tpm).

طلب بحث

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

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

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

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

في ما يلي الخطوة 1، وهي إرسال الطلب.

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

لإرسال طلب بحث عن تقرير تحقيق الربح غير المتزامن، أرسِل طلب 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 تاريخ بدء التقرير بالتوقيت العالمي المنسّق. لا ينطبق نعم
monetizationPakageIds رقم تعريف حزمة واحدة أو أكثر من حِزم واجهة برمجة التطبيقات المطلوب تضمينها في التقرير في حال عدم تحديد هذا السمة، يتم تضمين جميع حِزم واجهات برمجة التطبيقات في التقرير. لا ينطبق لا
productIds معرّف منتج واحد أو أكثر من منتجات واجهة برمجة التطبيقات المطلوب تضمينه في التقرير في حال عدم تحديد هذا الموقع، يتم تضمين جميع منتجات واجهة برمجة التطبيقات في التقرير. لا ينطبق لا
ratePlanLevels

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

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

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

لا ينطبق لا
toDate تاريخ انتهاء التقرير بالتوقيت العالمي المنسَّق لا ينطبق نعم

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

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