گزارش های پرس و جو

یک Report شامل نتیجه تحلیل یک بسته نرم‌افزاری واحد است و شامل بررسی‌های انطباق و نتایج نظارت بر داده‌ها می‌شود. تقریباً به تمام داده‌هایی که از طریق صفحات انطباق و نظارت بر داده‌ها در کنسول بررسی‌ها ارائه می‌شوند، می‌توان از طریق گزارش‌ها به صورت برنامه‌نویسی دسترسی پیدا کرد.

API مربوط به Checks متدهای استاندارد Get و List را برای دسترسی به گزارش‌ها ارائه می‌دهد:

انتخاب کنید کدام فیلدها برگردانده شوند

از آنجا که گزارش‌ها حاوی داده‌های زیادی هستند، فقط فیلدهای name و resultsUri به طور پیش‌فرض برگردانده می‌شوند. برای برگرداندن مجموعه‌ای متفاوت از فیلدها، آنها را به طور صریح در پارامتر query URL مربوط fields فهرست کنید.

مثال:

GET https://checks.googleapis.com/v1alpha/accounts/123/apps/456/reports/789?fields=name,checks(type,state)

بازده:

{
  "name": "accounts/123/apps/456/reports/789",
  "checks": [
    {
      "type": "PRIVACY_POLICY_UPDATE_DATE_RECENT",
      "state": "PASSED"
    },
    ...
  ]
}

فیلدهای تو در تو را می‌توان با استفاده از نقطه یا با قرار دادن آنها در پرانتز فهرست کرد.

برای مثال،

fields=checks.type,checks.state

معادل است با

fields=checks(type,state)

پرانتزها همچنین می‌توانند به صورت بازگشتی استفاده شوند، مانند:

fields=checks(type,state,evidence(permissions,sdks))

این باعث می‌شود عبارات مختصرتر باشند.

مقدار پارامتر fields کوئری به عنوان ماسک فیلد نیز شناخته می‌شود. برای کسب اطلاعات بیشتر به ماسک‌های فیلد مراجعه کنید.

در زیر مثال‌های بیشتری از ماسک فیلد برای متدهای Get و List آمده است:

دریافت

بیان خروجی
* تمام فیلدها را برمی‌گرداند.
name,checks name و تمام فیلدهای تو در تو از checks را برمی‌گرداند.
name,checks(type,state) name ، checks.type و checks.state را برمی‌گرداند.
name,dataMonitoring name و تمام فیلدهای تو در تو از dataMonitoring را برمی‌گرداند.

فهرست

بیان خروجی
* تمام فیلدها را برمی‌گرداند.
reports(name,checks) name و تمام فیلدهای تو در تو از checks را برمی‌گرداند.
reports(name,checks(type,state)) name ، checks.type و checks.state را برمی‌گرداند.
reports(name,dataMonitoring) name و تمام فیلدهای تو در تو از dataMonitoring را برمی‌گرداند.

فیلتر کردن گزارش‌ها

شما می‌توانید گزارش‌های برگردانده شده توسط متد List را با ارسال یک عبارت فیلتر با استفاده از پارامتر query آدرس اینترنتی filter فیلتر کنید.

در اینجا چند مثال آورده شده است:

بیان خروجی
appBundle.releaseType = PRE_RELEASE فقط گزارش‌های بسته‌های نرم‌افزاری پیش‌انتشار را برمی‌گرداند.
appBundle.releaseType = PUBLIC فقط گزارش‌های مربوط به بسته‌های برنامه‌های عمومی را برمی‌گرداند.
appBundle.codeReferenceId = abc123 گزارش‌هایی را برمی‌گرداند که در آن‌ها codeReferenceId برابر با abc123 باشد.

فیلتر کردن بر اساس این مسیرهای فیلد پشتیبانی نمی‌شود:

  • checks.evidence.dataTypes.dataTypeEvidence.endpoints.attributedSdks.sdk.id
  • checks.evidence.dataTypes.dataTypeEvidence.endpoints.endpointDetails.endpoint.domain
  • checks.evidence.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.htmlContent
  • checks.evidence.privacyPolicyTexts.policyFragment.htmlContent
  • checks.evidence.sdkIssues.sdk.id
  • dataMonitoring.dataTypes.dataTypeEvidence.endpoints.attributedSdks.sdk.id
  • dataMonitoring.dataTypes.dataTypeEvidence.endpoints.endpointDetails.endpoint.domain
  • dataMonitoring.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.htmlContent
  • dataMonitoring.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.sourceUri
  • dataMonitoring.permissions.metadata.lastDetectedAppVersion
  • resultsUri

برای یادگیری نحوه ایجاد عبارات فیلتر بیشتر، به AIP-160 مراجعه کنید.

فیلتر کردن بررسی‌ها در گزارش‌ها

شما می‌توانید با ارسال یک عبارت فیلتر با استفاده از پارامتر query URL مربوط به checksFilter بررسی‌ها را در گزارش‌ها فیلتر کنید. فقط بررسی‌هایی که با عبارت فیلتر مطابقت دارند در پاسخ گنجانده می‌شوند. این پارامتر توسط هر دو روش List و Get پشتیبانی می‌شود.

در اینجا چند مثال آورده شده است:

بیان خروجی
state = FAILED فقط شامل چک‌های ناموفق می‌شود.
citations.type:GDPR فقط شامل بررسی‌های مربوط به GDPR می‌شود.
state = FAILED AND citations.type:GDPR فقط شامل بررسی‌های ناموفق مربوط به GDRP می‌شود.
regionCodes:CA فقط شامل چک‌های مربوط به منطقه کانادا می‌شود.
state = FAILED AND severity = PRIORITY فقط شامل بررسی‌های اولویت ناموفق می‌شود.

فیلتر کردن بر اساس این مسیرهای فیلد پشتیبانی نمی‌شود:

  • evidence.dataTypes.dataTypeEvidence.endpoints.attributedSdks.sdk.id
  • evidence.dataTypes.dataTypeEvidence.endpoints.endpointDetails.endpoint.domain
  • evidence.dataTypes.dataTypeEvidence.privacyPolicyTexts.policyFragment.htmlContent
  • evidence.privacyPolicyTexts.policyFragment.htmlContent
  • evidence.sdkIssues.sdk.id

برای یادگیری نحوه ایجاد عبارات فیلتر بیشتر، به AIP-160 مراجعه کنید.

صفحه بندی

به طور پیش‌فرض، متد List حداکثر 10 گزارش را برمی‌گرداند. می‌توانید این مقدار را با تنظیم پارامتر پرس‌وجوی pageSize URL تغییر دهید. حداکثر مقدار 50 است.

متد List زمانی که نتایج بیشتری برای واکشی وجود داشته باشد، یک nextPageToken برمی‌گرداند:

{
  "reports": [
    ...
  ],
  "nextPageToken": "CAEQ0ITI8K7ngAMaIDY3MThjNjQ3NGZmNzBhZGI4NWI5NjAyN2ViZmQ5MWVh"
}

این توکن را با استفاده از پارامتر پرس‌وجوی URL مربوط به pageToken به متد List ارسال کنید تا صفحه بعدی نتایج را دریافت کنید.