स्टेटमेंट लिस्ट सिंटैक्स

स्टेटमेंट की सूची, JSON-encoded फ़ाइल या स्निपेट होती है. यह एक जानी-पहचानी जगह पर मौजूद होती है.

स्टेटमेंट की सूची की जगह

यह सूची कहां सेव करनी चाहिए, यह जानने के लिए स्टेटमेंट की सूची बनाना लेख पढ़ें.

सिंटैक्स

स्टेटमेंट की सूची या स्निपेट में, एक या उससे ज़्यादा वेबसाइट या ऐप्लिकेशन के स्टेटमेंट का JSON कलेक्शन होता है. ये स्टेटमेंट किसी भी क्रम में हो सकते हैं. यहां सामान्य सिंटैक्स दिया गया है:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
एक या उससे ज़्यादा स्ट्रिंग का ऐरे, जो टारगेट के बारे में बताए गए संबंध के बारे में बताता है. तय की गई संबंध स्ट्रिंग की सूची देखें. उदाहरण: delegate_permission/common.handle_all_urls
टारगेट
वह टारगेट ऐसेट जिस पर यह स्टेटमेंट लागू होता है. उपलब्ध टारगेट टाइप:
relation_extensions (ज़रूरी नहीं)

आपके पास किसी स्टेटमेंट में relation_extensions फ़ील्ड जोड़ने का विकल्प होता है. इससे उन अनुमतियों और असोसिएशन के बारे में ज़्यादा जानकारी दी जा सकती है जिन्हें आपको अनुमति देनी है. यह फ़ील्ड एक ऑब्जेक्ट होना चाहिए. इसमें हर कुंजी एक रिलेशन स्ट्रिंग होती है और वैल्यू एक ऐसा ऑब्जेक्ट होता है जिसमें उस रिलेशन के एक्सटेंशन शामिल होते हैं. इन स्टेटमेंट का अनुरोध करने वाले क्लाइंट को इन फ़ील्ड के हिसाब से अपडेट किया जाना चाहिए.

उदाहरण के लिए, delegate_permission/common.handle_all_urls संबंध के लिए relation_extensions ऐसा दिख सकता है:

  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app",
      "sha256_cert_fingerprints": ["..."]
    },
    "relation_extensions": {
      "delegate_permission/common.handle_all_urls": {...}
    }
  }
  

DAL API, एपीआई कॉल में relation_extensions को वापस लाने की सुविधा देता है. ऐसा तब होता है, जब अनुरोध में return_relation_extensions=true पैरामीटर सेट किया गया हो.

स्टेटमेंट की सूची का उदाहरण

यहां वेबसाइट के स्टेटमेंट की सूची का एक उदाहरण दिया गया है. इसमें वेबसाइटों और ऐप्लिकेशन, दोनों के बारे में स्टेटमेंट शामिल हैं: http://example.digitalassetlinks.org/.well-known/assetlinks.json

कई स्टेटमेंट या उससे ज़्यादा स्टेटमेंट को स्केल करना

कुछ मामलों में, प्रिंसिपल अलग-अलग टारगेट के बारे में कई अलग-अलग स्टेटमेंट देना चाहेगा. इसके अलावा, ऐसा भी हो सकता है कि एक ही सेट के टारगेट के लिए, अलग-अलग प्रिंसिपल से स्टेटमेंट जारी करने की ज़रूरत हो. उदाहरण के लिए, कोई वेबसाइट हर देश के हिसाब से अलग-अलग टॉप लेवल डोमेन पर उपलब्ध हो सकती है. साथ ही, उन सभी डोमेन पर एक ही मोबाइल ऐप्लिकेशन के बारे में जानकारी दी जा सकती है.

इन स्थितियों में, include स्टेटमेंट मददगार हो सकते हैं. इस तरीके का इस्तेमाल करके, कई अलग-अलग प्रिंसिपल से एक ही जगह पर पॉइंटर सेट अप किए जा सकते हैं. यह जगह, सभी प्रिंसिपल के लिए स्टेटमेंट तय करती है.

उदाहरण के लिए, हो सकता है कि आपको केंद्रीय जगह के तौर पर `https://example.com/includedstatements.json` को सेट करना हो. इस फ़ाइल को ऊपर दिए गए उदाहरणों में मौजूद कॉन्टेंट के हिसाब से कॉन्फ़िगर किया जा सकता है.

किसी वेबसाइट से, शामिल की गई फ़ाइल पर पॉइंटर सेट अप करने के लिए, `https://example.com/.well-known/assetlinks.json` को इसमें बदलें:

[{
  "include": "https://example.com/includedstatements.json"
}]

किसी Android ऐप्लिकेशन से include फ़ाइल में पॉइंटर सेट अप करने के लिए, `res/values/strings.xml` को इसमें बदलें:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

ज़्यादा जानकारी

स्टेटमेंट लिस्ट के फ़ॉर्मैट और इससे जुड़े सिद्धांतों के बारे में ज़्यादा जानकारी, हमारे स्पेसिफ़िकेशन दस्तावेज़ में दी गई है.