דוחות שאילתות

Report מכיל את התוצאה של ניתוח חבילת אפליקציה אחת וכולל את בדיקות התאימות ואת תוצאות המעקב אחר הנתונים. אפשר לגשת באופן פרוגרמטי לרוב הנתונים שמוצגים בדוחות, דרך הדפים תאימות ומעקב אחר נתונים ב-Checks Console.

ב-Checks API יש שיטות סטנדרטיות Get ו-List לגישה לדוחות:

בחירת השדות שיוחזרו

הדוחות מכילים הרבה נתונים, ולכן כברירת מחדל מוחזרים רק השדות name ו-resultsUri. כדי להחזיר קבוצה אחרת של שדות, צריך לציין אותם באופן מפורש בפרמטר השאילתה של כתובת ה-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 נקרא גם field mask. מידע נוסף זמין במאמר בנושא Field masks.

בהמשך מופיעות דוגמאות נוספות למסכות שדות לשיטות 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.

סינון דוחות

כדי לסנן את הדוחות שמוחזרים על ידי ה-method ‏List, מעבירים ביטוי מסנן באמצעות פרמטר השאילתה filter של כתובת ה-URL.

הנה כמה דוגמאות:

ביטוי פלט
appBundle.releaseType = PRE_RELEASE הפונקציה מחזירה רק דוחות של חבילות App Bundle בטרום-הפצה.
appBundle.releaseType = PUBLIC הפונקציה מחזירה רק דוחות של חבילות App Bundle ציבוריות.
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 מוסבר איך ליצור עוד ביטויי מסננים.

סינון בדיקות בדוחות

כדי לסנן בדיקות בדוחות, מעבירים ביטוי מסנן באמצעות הפרמטר checksFilter של שאילתת כתובת ה-URL. בתגובה נכללות רק בדיקות שתואמות לביטוי המסנן. הפרמטר הזה נתמך בשיטות List ו-Get.

הנה כמה דוגמאות:

ביטוי פלט
state = FAILED כולל רק בדיקות שנכשלו.
citations.type:GDPR כולל רק בדיקות שקשורות ל-GDPR.
state = FAILED AND citations.type:GDPR הנתון כולל רק בדיקות שנכשלו שקשורות ל-GDPR.
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 דוחות. אפשר לשנות את ההגדרה הזו באמצעות הפרמטר של שאילתת כתובת ה-URL‏ pageSize. הערך המקסימלי הוא 50.

השיטה List מחזירה nextPageToken אם יש עוד תוצאות לאחזור:

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

מעבירים את האסימון הזה לשיטה List באמצעות פרמטר השאילתה של כתובת ה-URL‏ pageToken כדי לאחזר את דף התוצאות הבא.