از API گزارش های سفارشی ناهمزمان استفاده کنید

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

Edge Analytics مجموعه ای غنی از داشبوردهای تعاملی، تولیدکنندگان گزارش سفارشی و قابلیت های مرتبط را ارائه می دهد. با این حال، این ویژگی‌ها تعاملی هستند: شما یک درخواست API یا UI ارسال می‌کنید و درخواست مسدود می‌شود تا زمانی که سرور تجزیه و تحلیل پاسخی ارائه کند.

با این حال، درخواست‌های تجزیه و تحلیل اگر تکمیل آن‌ها بیش از حد طول بکشد، ممکن است به پایان برسد. اگر یک درخواست پرس و جو نیاز به پردازش حجم زیادی از داده ها داشته باشد (مثلاً 100 گیگابایت)، ممکن است به دلیل اتمام زمان با شکست مواجه شود.

پردازش ناهمزمان پرس و جو به شما امکان می دهد برای مجموعه داده های بسیار بزرگ پرس و جو کنید و نتایج را در زمان دیگری بازیابی کنید. ممکن است زمانی که متوجه شدید که پرس و جوهای تعاملی شما تمام می شود، از یک پرس و جو آفلاین استفاده کنید. برخی از شرایطی که پردازش پرس و جو ناهمزمان ممکن است جایگزین خوبی باشد عبارتند از:

  • تجزیه و تحلیل و ایجاد گزارش هایی که فواصل زمانی زیادی را در بر می گیرند.
  • تجزیه و تحلیل داده ها با انواع ابعاد گروه بندی و سایر محدودیت ها که به پرس و جو پیچیدگی می بخشد.
  • زمانی که متوجه شدید حجم داده ها برای برخی از کاربران یا سازمان ها به میزان قابل توجهی افزایش یافته است، پرس و جوها را مدیریت کنید.

این سند نحوه راه اندازی پرس و جوهای ناهمزمان با استفاده از API را شرح می دهد. همچنین می‌توانید از رابط کاربری استفاده کنید، همانطور که در اجرای گزارش سفارشی توضیح داده شده است.

مقایسه API گزارش ها با UI

ایجاد و مدیریت گزارش های سفارشی نحوه استفاده از Edge UI برای ایجاد و اجرای گزارش های سفارشی را شرح می دهد. شما می توانید آن گزارش ها را به صورت همزمان یا ناهمزمان اجرا کنید.

بیشتر مفاهیم تولید گزارش های سفارشی با رابط کاربری در مورد استفاده از API اعمال می شود. یعنی، هنگام ایجاد گزارش‌های سفارشی با API، معیارها ، ابعاد ، و فیلترهای ساخته شده در Edge و هر معیار سفارشی‌ای را که با استفاده از خط‌مشی StatisticsCollector ایجاد کرده‌اید، مشخص می‌کنید.

تفاوت عمده بین گزارش های تولید شده در UI و در API این است که گزارش های تولید شده با API به جای گزارش تصویری نمایش داده شده در UI، در فایل های CSV یا JSON (محدود شده با خط جدید) نوشته می شوند.

محدودیت ها در هیبرید Apigee

Apigee هیبرید محدودیت اندازه 30 مگابایتی را در مجموعه داده های نتیجه اعمال می کند.

چگونه یک پرس و جو تجزیه و تحلیل ناهمزمان ایجاد کنیم

شما پرس و جوهای تحلیلی ناهمزمان را در سه مرحله ایجاد می کنید:

  1. درخواست را ارسال کنید .

  2. وضعیت پرس و جو را دریافت کنید .

  3. نتایج پرس و جو را بازیابی کنید .

مرحله 1. درخواست را ارسال کنید

شما باید یک درخواست POST به API /queries ارسال کنید. این API به Edge می‌گوید درخواست شما را در پس‌زمینه پردازش کند. اگر ارسال پرس و جو با موفقیت انجام شود، API وضعیت 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 API برای بازیابی نتایج استفاده کنید، جایی که شناسه پرس و جو دوباره 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 استفاده می کنید، باید دکمه ذخیره و دانلود را انتخاب کنید. در این حالت یک فایل فشرده به نام response دانلود می شود.

  • اگر از مرورگر کروم استفاده می کنید، دانلود به صورت خودکار پذیرفته می شود.

اگر درخواست با موفقیت انجام شود، و یک مجموعه نتایج غیر صفر وجود داشته باشد، نتیجه به عنوان یک فایل JSON فشرده (محدود شده با خط جدید) برای مشتری دانلود می شود. نام فایل دانلود شده به صورت زیر خواهد بود:

OfflineQueryResult-<query-id>.zip

به عنوان مثال:

OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.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 برای یک پرس و جو استفاده کنید، توضیح می دهد. برای جزئیات در مورد معیارها و ابعادی که می توانید در جستار خود استفاده کنید، به مرجع Analytics مراجعه کنید.

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

برای اطلاعات بیشتر، به مرجع معیارها، ابعاد و فیلترها Analytics مراجعه کنید.

خیر
dimensions آرایه ای از ابعاد برای گروه بندی معیارها. برای اطلاعات بیشتر، به لیست ابعاد پشتیبانی شده مراجعه کنید. شما می توانید ابعاد مختلف را مشخص کنید. خیر
timeRange محدوده زمانی برای پرس و جو.

می توانید از رشته های از پیش تعریف شده زیر برای تعیین محدوده زمانی استفاده کنید:

  • last60minutes
  • last24hours
  • last7days

یا، می‌توانید timeRange به عنوان ساختاری که مهرهای زمانی شروع و پایان را در قالب ISO توصیف می‌کند، مشخص کنید: yyyy-mm-dd T hh:mm:ss Z . به عنوان مثال:

"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
بله
limit حداکثر تعداد ردیف هایی که می توان در نتیجه برگرداند. خیر
filter عبارت بولی که می تواند برای فیلتر کردن داده ها استفاده شود. عبارات فیلتر را می توان با استفاده از اصطلاحات AND/OR ترکیب کرد و برای جلوگیری از ابهام باید کاملاً پرانتز شوند. برای اطلاعات بیشتر در مورد فیلدهای موجود برای فیلتر کردن، به معیارها، ابعاد و فیلترها مراجعه کنید. برای اطلاعات بیشتر در مورد نشانه هایی که برای ساخت عبارات فیلتر استفاده می کنید، به نحو عبارت فیلتر مراجعه کنید. خیر
groupByTimeUnit واحد زمان برای گروه بندی مجموعه نتایج استفاده می شود. مقادیر معتبر عبارتند از: second ، minute ، hour ، day ، week یا month .

اگر یک پرس و جو شامل groupByTimeUnit باشد، نتیجه یک تجمیع بر اساس واحد زمانی مشخص شده است و مهر زمانی حاصله شامل دقت میلی ثانیه نمی شود. اگر یک کوئری groupByTimeUnit حذف کند، آنگاه مهر زمانی حاصله شامل دقت میلی ثانیه است.

خیر
outputFormat فرمت خروجی مقادیر معتبر عبارتند از: csv یا json . پیش‌فرض json مربوط به JSON با خط جدید محدود شده است.

توجه : با استفاده از ویژگی csvDelimiter ، جداکننده را برای خروجی CSV پیکربندی کنید.

خیر
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 را برمی‌گرداند.

مثال به درستی به صورت زیر مطابقت دارد:

- هر مقداری که کلمه "خرید" را داشته باشد

- هر مقداری که به "اقلام" ختم شود

- هر مقداری که با "Prod" شروع شود

- هر مقداری که با 4 شروع شود، توجه داشته باشید answer_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)

محدودیت ها و پیش فرض ها

در زیر لیستی از محدودیت ها و پیش فرض ها برای ویژگی پردازش پرس و جو ناهمزمان آورده شده است.

محدودیت پیش فرض توضیحات
درخواست محدودیت تماس توضیحات را ببینید برای شروع یک گزارش ناهمزمان، می‌توانید تا هفت تماس در ساعت با API مدیریت query / برقرار کنید. اگر از سهمیه تماس فراتر بروید، API یک پاسخ 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"
}

نحوه ایجاد پرس و جو گزارش کسب درآمد ناهمزمان

با استفاده از مراحلی که در این بخش توضیح داده شده است، می‌توانید تمام تراکنش‌های کسب درآمد موفقیت‌آمیز را در یک بازه زمانی معین برای مجموعه‌ای از معیارها ثبت کنید.

همانند پرس و جوهای تحلیلی ناهمزمان، پرس و جوهای گزارش کسب درآمد ناهمزمان را در سه مرحله ایجاد می کنید: (1) درخواست را ارسال کنید، (2) وضعیت پرس و جو را دریافت کنید و (3) نتایج پرس و جو را بازیابی کنید.

مرحله 1 ، ارسال پرس و جو، در زیر توضیح داده شده است.

مراحل 2 و 3 دقیقاً مشابه پرس و جوهای تحلیلی ناهمزمان هستند. برای اطلاعات بیشتر، به نحوه ایجاد یک جستار تحلیلی ناهمزمان مراجعه کنید.

برای ارسال درخواستی برای گزارش کسب درآمد ناهمزمان، یک درخواست POST به /mint/organizations/ org_id /async-reports ارسال کنید.

به صورت اختیاری، می توانید با پاس دادن پارامتر پرس و جو environment ، محیط را مشخص کنید. اگر مشخص نشده باشد، پارامتر query به طور پیش فرض روی prod است. به عنوان مثال:

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

در بدنه درخواست، معیارهای جستجوی زیر را مشخص کنید.

نام توضیحات پیش فرض مورد نیاز؟
appCriteria شناسه و سازمان برای یک برنامه خاص که باید در گزارش گنجانده شود. اگر این ویژگی مشخص نشده باشد، همه برنامه ها در گزارش گنجانده می شوند. N/A خیر
billingMonth ماه صورت‌حساب برای گزارش، مانند ژوئیه. N/A بله
billingYear سال صورتحساب برای گزارش، مانند 2015. N/A بله
currencyOption واحد پول گزارش مقادیر معتبر عبارتند از:
  • LOCAL - هر خط از گزارش با استفاده از طرح نرخ قابل اجرا نمایش داده می شود. این بدان معنی است که اگر توسعه دهندگان برنامه هایی داشته باشند که از ارزهای مختلف استفاده می کنند، ممکن است چندین ارز در یک گزارش وجود داشته باشد.
  • EUR - معاملات ارز محلی به یورو تبدیل و نمایش داده می شود.
  • GPB - معاملات ارز محلی به پوند بریتانیا تبدیل و نمایش داده می شود.
  • USD - معاملات ارز محلی به دلار ایالات متحده تبدیل و نمایش داده می شود.

اگر EUR، GBP یا USD را انتخاب کنید، گزارش تمام معاملات با استفاده از آن ارز واحد را بر اساس نرخ مبادله معتبر در تاریخ معامله نمایش می دهد.

N/A خیر
devCriteria

شناسه برنامه‌نویس یا آدرس ایمیل، و نام سازمان برای یک برنامه‌نویس خاص که باید در گزارش درج شود. اگر این ویژگی مشخص نشده باشد، همه توسعه دهندگان در گزارش گنجانده می شوند.

به عنوان مثال:

"devCriteria":[{
    "id":"RtHAeZ6LtkSbEH56",
    "orgId":"my_org"}
]
N/A خیر
fromDate تاریخ شروع گزارش در UTC. N/A بله
monetizationPakageIds شناسه یک یا چند بسته API برای درج در گزارش. اگر این ویژگی مشخص نشده باشد، تمام بسته های API در گزارش گنجانده می شود. N/A خیر
productIds شناسه یک یا چند محصول API برای درج در گزارش. اگر این ویژگی مشخص نشده باشد، تمام محصولات API در گزارش گنجانده می شود. N/A خیر
ratePlanLevels

نوع طرح نرخی که باید در گزارش درج شود. مقادیر معتبر عبارتند از:

  • DEVELOPER - طرح نرخ توسعه دهنده.
  • STANDARD - طرح نرخ استاندارد.

اگر این ویژگی مشخص نشده باشد، هر دو طرح نرخ ویژه توسعه‌دهنده و استاندارد در گزارش گنجانده می‌شوند.

N/A خیر
toDate تاریخ پایان گزارش در UTC. N/A بله

به عنوان مثال، درخواست زیر یک گزارش کسب درآمد ناهمزمان برای ماه ژوئن ۲۰۱۷ برای محصول API مشخص شده و شناسه برنامه‌نویس ایجاد می‌کند. تاریخ‌ها و زمان‌های گزارش fromDate و toDate به UTC/GMT هستند و می‌توانند شامل زمان باشند.

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