OASपुष्टि करने की नीति

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

OASपुष्टि करने की नीति के बारे में जानकारी

OASValidation (OpenAPI Specification Validation) नीति की मदद से आपको किसी OpenAPI 3.0 स्पेसिफ़िकेशन (JSON या YAML) के हिसाब से आने वाले अनुरोध या रिस्पॉन्स मैसेज की पुष्टि करने में मदद मिलती है. देखें कि किस कॉन्टेंट की पुष्टि की गई है?

जिस चरण पर नीति अटैच की गई है उसके लागू होने पर, OASपुष्टि नीति OpenAPI की खास बातों का नाम तय करती है. इसका इस्तेमाल पुष्टि करने के लिए किया जाता है. OpenAPI की खास जानकारी को एपीआई प्रॉक्सी बंडल में नीचे दिए गए मानक जगह पर संसाधन के तौर पर सेव किया जाता है: apiproxy/resources/oas. OpenAPI की खास बातों में .json, .yml, .yaml एक्सटेंशन होना चाहिए.

संसाधनों को मैनेज करें में बताए गए तरीके से, यूज़र इंटरफ़ेस (यूआई) या एपीआई का इस्तेमाल करके, किसी एपीआई प्रॉक्सी बंडल में संसाधन के तौर पर OpenAPI की खास बातें जोड़ें.

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

किस कॉन्टेंट की पुष्टि की गई है?

नीचे दी गई टेबल में उस अनुरोध वाले मैसेज के कॉन्टेंट की खास जानकारी दी गई है जिसकी पुष्टि, OASValidation नीति के तहत कॉम्पोनेंट के हिसाब से की गई है.

घटक सत्यापन का अनुरोध करें
बेसपाथ एपीआई प्रॉक्सी से तय किए गए बेसपाथ की पुष्टि करता है; OpenAPI स्पेसिफ़िकेशन में तय किए गए बेसपाथ को अनदेखा करता है.
पाथ इस बात की पुष्टि करता है कि अनुरोध का पाथ (बेसपाथ को हटाकर), OpenAPI स्पेसिफ़िकेशन में तय किए गए किसी पाथ पैटर्न में से किसी एक से मेल खाता हो.
क्रिया यह पुष्टि करता है कि OpenAPI स्पेसिफ़िकेशन में, पाथ के लिए क्रिया को तय किया गया है.
अनुरोध के मैसेज का मुख्य हिस्सा
  • अनुरोध में मैसेज के मुख्य हिस्से की पुष्टि करता है, अगर ज़रूरी हो.
  • इसके अलावा, यह OpenAPI स्पेसिफ़िकेशन में, मैसेज के मुख्य हिस्से की पुष्टि कार्रवाई के अनुरोध के मुख्य हिस्से के हिसाब से करता है. <ValidateMessageBody> का इस्तेमाल करके इस विकल्प को कॉन्फ़िगर करें

ध्यान दें: यह नीति, अनुरोध वाले मैसेज के मुख्य हिस्से की पुष्टि OpenAPI स्पेसिफ़िकेशन के मुताबिक सिर्फ़ तब करती है, जब कॉन्टेंट टाइप को इस पर सेट किया गया हो application/json. अगर कॉन्टेंट टाइप application/json पर सेट नहीं है, तो अनुरोध के मैसेज के मुख्य हिस्से की पुष्टि अपने-आप हो जाएगी (कॉन्टेंट की पुष्टि किए बिना).

पैरामीटर
  • इस बात की पुष्टि करता है कि अनुरोध में ज़रूरी पैरामीटर मौजूद हैं. इनमें पाथ, हेडर, क्वेरी, और कुकी पैरामीटर शामिल हैं.
  • यह पुष्टि करता है कि पैरामीटर वैल्यू, OpenAPI स्पेसिफ़िकेशन में तय की गई वैल्यू से मेल खाती हैं.
  • इसके अलावा, यह पुष्टि करता है कि अनुरोध में ऐसे पैरामीटर मौजूद हैं या नहीं जिन्हें OpenAPI की खास जानकारी में तय नहीं किया गया है. <AllowUnspecifiedParameters> का इस्तेमाल करके इस विकल्प को कॉन्फ़िगर करें

नीचे दी गई टेबल में उस जवाब वाले मैसेज का कॉन्टेंट के बारे में खास जानकारी दी गई है जिसकी पुष्टि, OASValidation नीति के तहत कॉम्पोनेंट के हिसाब से की गई है.

घटक प्रतिक्रिया पुष्टि
पाथ इस बात की पुष्टि करता है कि अनुरोध का पाथ (बेसपाथ को हटाकर), OpenAPI स्पेसिफ़िकेशन में तय किए गए किसी पाथ पैटर्न में से किसी एक से मेल खाता हो.
क्रिया यह पुष्टि करता है कि OpenAPI स्पेसिफ़िकेशन में, पाथ के लिए क्रिया को तय किया गया है.
जवाब के मैसेज का मुख्य हिस्सा
  • अगर ज़रूरी हो, तो जवाब में मैसेज के मुख्य हिस्से की पुष्टि करता है.
  • यह पुष्टि करता है कि OpenAPI की खास जानकारी में रिस्पॉन्स हेडर, रिस्पॉन्स मैसेज में मौजूद हैं. साथ ही, यह भी पुष्टि करते हैं कि रिस्पॉन्स की वैल्यू हेडर, स्कीमा से मेल खाते हैं.
  • इसके अलावा, यह OpenAPI स्पेसिफ़िकेशन में, मैसेज के मुख्य हिस्से की पुष्टि, ऐक्शन के मुख्य हिस्से के स्कीमा के मुताबिक करता है. <ValidateMessageBody> का इस्तेमाल करके इस विकल्प को कॉन्फ़िगर करें

सैंपल

नीचे दिए गए उदाहरणों में, OASपुष्टि का इस्तेमाल करने के कुछ तरीके बताए गए हैं की पुष्टि करें.

अनुरोध के मैसेज की पुष्टि करें

यहां दिए गए उदाहरण में, myoaspolicy नीति, अनुरोध वाले मैसेज के मुख्य हिस्से की पुष्टि कार्रवाई के अनुरोध वाले मैसेज के मुख्य हिस्से का स्कीमा, my-spec.json OpenAPI स्पेसिफ़िकेशन में बताया गया है.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.json</OASResource>
   <Options>
      <ValidateMessageBody>true</ValidateMessageBody>
   </Options>
   <Source>request</Source>
</OASValidation>

अगर मैसेज का मुख्य हिस्सा OpenAPI की शर्तों के मुताबिक नहीं है, तो policies.oasvalidation.Failed गड़बड़ी दिखती है.

पैरामीटर की पुष्टि करना

यहां दिए गए उदाहरण में, नीति को कॉन्फ़िगर नहीं किया जा सकता है. ऐसा तब होता है, जब अनुरोध में हेडर, क्वेरी या कुकी पैरामीटर में तय किया गया है.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<OASValidation> एलिमेंट

यह OpenAPI स्पेसिफ़िकेशन की पुष्टि करने की नीति के बारे में बताता है.

डिफ़ॉल्ट वैल्यू नीचे डिफ़ॉल्ट नीति टैब देखें
ज़रूरी है? ज़रूरी है
स्ट्रीम किस तरह की है कॉम्प्लेक्स ऑब्जेक्ट
पैरंट एलिमेंट लागू नहीं
चाइल्ड एलिमेंट <DisplayName>
<OASResource>
<Source>
<Options>
<Source>

सिंटैक्स

<OASValidation> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation
  continueOnError="[true|false]"
  enabled="[true|false]"
  name="policy_name"
>
    <!-- All OASValidation child elements are optional except OASResource -->
    <DisplayName>policy_display_name</DisplayName>
    <OASResource>validation_JSON_or_YAML</OASResource>
    <Options>
        <ValidateMessageBody>[true|false]</ValidateMessageBody>
        <AllowUnspecifiedParameters>
            <Header>[true|false]</Header>
            <Query>[true|false]</Query>
            <Cookie>[true|false]</Cookie>
        </AllowUnspecifiedParameters>
    </Options>
    <Source>message_to_validate</Source>
</OASValidation>

डिफ़ॉल्ट नीति

यहां दिए गए उदाहरण में, ओएएस की पुष्टि करने से जुड़ी नीति जोड़ने पर डिफ़ॉल्ट सेटिंग दिखाई गई हैं Apigee यूज़र इंटरफ़ेस (यूआई) में आपके फ़्लो पर:

<OASValidation continueOnError="false" enabled="true" name="OpenAPI-Spec-Validation-1">
    <DisplayName>OpenAPI Spec Validation-1</DisplayName>
    <Properties/>
    <Source>request</Source>
    <OASResource>oas://OpenAPI-Spec-Validation-1.yaml</OASResource>
</OASValidation>

इस एलिमेंट में ये एट्रिब्यूट शामिल होते हैं, जो सभी नीतियों में शामिल हैं:

एट्रिब्यूट डिफ़ॉल्ट ज़रूरी है? ब्यौरा
name लागू नहीं ज़रूरी

नीति का अंदरूनी नाम. name एट्रिब्यूट की वैल्यू में अक्षर, संख्याएं, स्पेस, हाइफ़न, अंडरस्कोर, और फ़ुल स्टॉप का इस्तेमाल किया जा सकता है. इस वैल्यू में 255 से ज़्यादा वर्ण नहीं हो सकते.

इसके अलावा, मैनेजमेंट एलिमेंट के यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति एलिमेंट को किसी अलग नाम से इस्तेमाल करने के लिए, <DisplayName> एलिमेंट का इस्तेमाल किया जा सकता है.

continueOnError गलत ज़रूरी नहीं नीति के काम न करने पर गड़बड़ी दिखाने के लिए, "गलत" पर सेट करें. ज़्यादातर नीतियों के लिए इस तरीके का इस्तेमाल किया जाना चाहिए. नीति लागू न होने के बाद भी फ़्लो चलाने के लिए, "सही" पर सेट करें.
enabled सही ज़रूरी नहीं नीति लागू करने के लिए, "सही" पर सेट करें. नीति को "बंद" करने के लिए "गलत" पर सेट करें. अगर नीति किसी फ़्लो से जुड़ी हुई हो, तो भी उसे लागू नहीं किया जाएगा.
async   गलत बहिष्कृत इस एट्रिब्यूट के इस्तेमाल पर रोक लगा दी गई है.

चाइल्ड एलिमेंट का रेफ़रंस

इस सेक्शन में, <OASValidation> के चाइल्ड एलिमेंट के बारे में बताया गया है.

<DisplayName>

यहां नीति को लेबल करने के लिए, name एट्रिब्यूट के साथ-साथ इस्तेमाल करें मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर, जिसका नाम बिलकुल असली लगता है.

<DisplayName> एलिमेंट का इस्तेमाल, सभी नीतियों के लिए किया जाता है.

डिफ़ॉल्ट वैल्यू लागू नहीं
ज़रूरी है? ज़रूरी नहीं. अगर आप <DisplayName> को छोड़ देते हैं, तो नीति की name एट्रिब्यूट का इस्तेमाल किया गया है
स्ट्रीम किस तरह की है स्ट्रिंग
पैरंट एलिमेंट &lt;PolicyElement&gt;
चाइल्ड एलिमेंट कोई नहीं

<DisplayName> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

सिंटैक्स

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

उदाहरण

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

<DisplayName> एलिमेंट में कोई एट्रिब्यूट या चाइल्ड एलिमेंट नहीं है.

<OASResource>

इसकी मदद से, OpenAPI की उस खास जानकारी के बारे में बताया जाता है जिसकी पुष्टि की जानी है. आप इस फ़ाइल को सेव कर सकते हैं:

  • एपीआई प्रॉक्सी बंडल में, /apiproxy/resources/oas से जुड़े एपीआई प्रॉक्सी दायरे में
  • एपीआई प्रॉक्सी एडिटर के Navigator व्यू के Resources सेक्शन में.

ज़्यादा जानकारी के लिए, संसाधन मैनेज करना लेख पढ़ें.

{oas.resource.url} जैसे मैसेज टेंप्लेट का इस्तेमाल करके, OpenAPI की खास जानकारी तय की जा सकती है. इस मामले में, फ़्लो वैरिएबल oas.resource.url (कर्ली ब्रैकेट में) की वैल्यू का आकलन किया जाएगा और रनटाइम के दौरान पेलोड स्ट्रिंग में बदल दिया जाता है. ज़्यादा जानकारी के लिए, मैसेज टेंप्लेट देखें.

डिफ़ॉल्ट वैल्यू कोई नहीं
ज़रूरी है? ज़रूरी है
स्ट्रीम किस तरह की है स्ट्रिंग
पैरंट एलिमेंट <OASValidation>
चाइल्ड एलिमेंट कोई नहीं

सिंटैक्स

<OASResource> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   ...
</OASValidation>

उदाहरण

नीचे दिए गए उदाहरण में my-spec.yaml के बारे में बताया गया है, जो एपीआई प्रॉक्सी बंडल में /apiproxy/resources/oas के तहत सेव है:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
</OASValidation>

<OASResource> एलिमेंट में कोई एट्रिब्यूट या चाइल्ड एलिमेंट नहीं है.

&lt;Options&gt;

इस नीति के तहत, विकल्प कॉन्फ़िगर करता है.

डिफ़ॉल्ट वैल्यू लागू नहीं
ज़रूरी है? वैकल्पिक
स्ट्रीम किस तरह की है कॉम्प्लेक्स टाइप
पैरंट एलिमेंट <OASValidation>
चाइल्ड एलिमेंट <ValidateMessageBody>
<AllowUnspecifiedParameters>

सिंटैक्स

<Options> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <ValidateMessageBody>[true|false]</ValidateMessageBody>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
         <Query>[true|false]</Query>
         <Cookie>[true|false]</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

उदाहरण

नीचे दिए गए उदाहरण में, नीति के विकल्पों को कॉन्फ़िगर किया गया है. इन विकल्पों के बारे में ज़्यादा जानकारी नीचे दी गई है.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <ValidateMessageBody>false</ValidateMessageBody>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

&lt;ValidateMessageBody&gt;

इससे यह तय होता है कि नीति को OpenAPI स्पेसिफ़िकेशन में, मैसेज के मुख्य हिस्से की पुष्टि, ऑपरेशन के अनुरोध के मुख्य हिस्से के हिसाब से करनी चाहिए या नहीं. वैल्यू की पुष्टि करने के लिए, true पर सेट करें ईमेल का मुख्य हिस्सा. false पर सेट करके, सिर्फ़ इस बात की पुष्टि करें कि मैसेज का मुख्य हिस्सा मौजूद है या नहीं.

<OASValidation> के लिए continueOnError एट्रिब्यूट सेट करके, यह कंट्रोल किया जा सकता है कि पुष्टि की गड़बड़ी के बाद, फ़्लो एक्ज़ीक्यूट होता रहे या नहीं एलिमेंट को सही पर सेट करें.

डिफ़ॉल्ट वैल्यू गलत
ज़रूरी है? वैकल्पिक
स्ट्रीम किस तरह की है बूलियन
पैरंट एलिमेंट <Options>
चाइल्ड एलिमेंट कोई नहीं

सिंटैक्स

<ValidateMessageBody> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
         <ValidateMessageBody>[true|false]</ValidateMessageBody>
   </Options>
   ...
</OASValidation>

उदाहरण

इस उदाहरण में, मैसेज के मुख्य हिस्से की पुष्टि करने की सुविधा चालू की गई है:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <ValidateMessageBody>true</ValidateMessageBody>
   </Options>
</OASValidation>

<AllowUnspecifiedParameters>

अगर हेडर, क्वेरी या कुकी पैरामीटर हैं, तो नीति के व्यवहार को कॉन्फ़िगर करती है उस अनुरोध में मौजूद है जिसे OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है.

डिफ़ॉल्ट वैल्यू लागू नहीं
ज़रूरी है? वैकल्पिक
स्ट्रीम किस तरह की है कॉम्प्लेक्स टाइप
पैरंट एलिमेंट <Options>
चाइल्ड एलिमेंट <Header>
<Query>
<Cookie>

सिंटैक्स

<AllowUnspecifiedParameters> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
         <Query>[true|false]</Query>
         <Cookie>[true|false]</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

उदाहरण

यहां दिए गए उदाहरण में, नीति को कॉन्फ़िगर नहीं किया जा सकता है. ऐसा तब होता है, जब अनुरोध में हेडर, क्वेरी या कुकी पैरामीटर में तय किया गया है.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

अगर हेडर पैरामीटर मौजूद हैं, तो नीति के व्यवहार को कॉन्फ़िगर करती है उस अनुरोध में मौजूद है जिसे OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है.

हेडर पैरामीटर को अनुरोध में तय करने की अनुमति देने के लिए, जिसे OpenAPI की खास जानकारी में तय नहीं किया गया है, इस पैरामीटर को true पर सेट करें. अगर ऐसा नहीं है, तो इस पैरामीटर को false पर सेट करें, ताकि नीति लागू न हो पाए.

डिफ़ॉल्ट वैल्यू सही
ज़रूरी है? बूलियन
स्ट्रीम किस तरह की है कॉम्प्लेक्स टाइप
पैरंट एलिमेंट <AllowUnspecifiedParameters>
चाइल्ड एलिमेंट कोई नहीं

सिंटैक्स

<Header> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

उदाहरण

यहां दिए गए उदाहरण में, नीति को कॉन्फ़िगर नहीं किया जा सकता है. ऐसा तब किया जाता है, जब अनुरोध में हेडर पैरामीटर के बारे में बताया गया हो में तय किया गया है.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<Query> (<AllowUnspecifiedParameters> का बच्चा)

अगर क्वेरी पैरामीटर मौजूद हैं, तो नीति के व्यवहार को कॉन्फ़िगर करती है उस अनुरोध में मौजूद है जिसे OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है.

ऐसे क्वेरी पैरामीटर को अनुरोध में दर्ज करने की अनुमति देने के लिए जिन्हें OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है, इस पैरामीटर को true पर सेट करें. अगर ऐसा नहीं है, तो इस पैरामीटर को false पर सेट करें, ताकि नीति लागू न हो पाए.

डिफ़ॉल्ट वैल्यू सही
ज़रूरी है? बूलियन
स्ट्रीम किस तरह की है कॉम्प्लेक्स टाइप
पैरंट एलिमेंट <AllowUnspecifiedParameters>
चाइल्ड एलिमेंट कोई नहीं

सिंटैक्स

<Query> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>[true|false]</Query>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

उदाहरण

यहां दिए गए उदाहरण में, नीति को कॉन्फ़िगर नहीं किया जा सकता है. ऐसा तब किया जाता है, जब अनुरोध में कोई क्वेरी पैरामीटर तय किया गया हो में तय किया गया है.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>false</Query>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

कुकी पैरामीटर मौजूद होने पर, नीति के व्यवहार को कॉन्फ़िगर करती है उस अनुरोध में मौजूद है जिसे OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है.

कुकी पैरामीटर को ऐसे अनुरोध में दर्ज करने की अनुमति देने के लिए जिसे OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है, इस पैरामीटर को true पर सेट करें. अगर ऐसा नहीं है, तो इस पैरामीटर को false पर सेट करें, ताकि नीति लागू न हो पाए.

डिफ़ॉल्ट वैल्यू सही
ज़रूरी है? बूलियन
स्ट्रीम किस तरह की है कॉम्प्लेक्स टाइप
पैरंट एलिमेंट <AllowUnspecifiedParameters>
चाइल्ड एलिमेंट कोई नहीं

सिंटैक्स

<Cookie> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>[true|false]</Query>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

उदाहरण

यहां दिए गए उदाहरण में, नीति को कॉन्फ़िगर नहीं किया जा सकता है. ऐसा तब किया जाता है, जब अनुरोध में कोई क्वेरी पैरामीटर तय किया गया हो में तय किया गया है.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<Source>

JSON पेलोड हमलों के ख़िलाफ़, JSON मैसेज की जांच होनी है. अक्सर यह इस पर सेट किया जाता है: request, क्योंकि आपको आम तौर पर क्लाइंट ऐप्लिकेशन से मिलने वाले इनबाउंड अनुरोधों का आकलन करना होगा. जवाब के मैसेज का आकलन करने के लिए, response पर सेट करें. अनुरोध मैसेज का अपने-आप आकलन करने के लिए, मैसेज पर सेट करें जब नीति, अनुरोध के फ़्लो से जुड़ी हो और रिस्पॉन्स से जुड़े मैसेज के साथ अटैच हो फ़्लो.

डिफ़ॉल्ट वैल्यू CANNOT TRANSLATE
ज़रूरी है? वैकल्पिक
स्ट्रीम किस तरह की है स्ट्रिंग
पैरंट एलिमेंट <Source>
चाइल्ड एलिमेंट कोई नहीं

सिंटैक्स

<Source> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Source>[message|request|response]</Source>
   ...
</OASValidation>

उदाहरण

यहां दिए गए उदाहरण में, अनुरोध के मैसेज का आकलन अपने-आप होता है. ऐसा तब होता है, जब नीति अनुरोध के फ़्लो से अटैच होती है और रिस्पॉन्स फ़्लो से जब नीति अटैच होती है, तो रिस्पॉन्स मैसेज का आकलन होता है:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Source>message</Source>
</OASValidation>

<Source> एलिमेंट में कोई एट्रिब्यूट या चाइल्ड एलिमेंट नहीं है.

स्कीमा

हर तरह की नीति को एक्सएमएल स्कीमा (.xsd) से तय किया जाता है. रेफ़रंस के लिए, नीति के स्कीमा GitHub पर उपलब्ध हैं.

गड़बड़ी कोड

यह सेक्शन गड़बड़ी के कोड और दिखाए गए गड़बड़ी के मैसेज के बारे में बताता है. साथ ही, इस नीति के ट्रिगर होने पर Edge की मदद से सेट की गई गड़बड़ी के वैरिएबल के बारे में बताता है. यह जानकारी जानना ज़रूरी है कि क्या गड़बड़ियों को ठीक करने के लिए, गड़बड़ी से जुड़े नियम बनाए जा रहे हैं. ज़्यादा जानने के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी और गड़बड़ियों को ठीक करने के तरीके देखें.

रनटाइम से जुड़ी गड़बड़ियां

नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.

गड़बड़ी का कोड एचटीटीपी कोड स्थिति वजह
steps.oasvalidation.Failed 500 दिए गए OpenAPI निर्देशों के हिसाब से, अनुरोध के मैसेज के मुख्य हिस्से की पुष्टि नहीं की जा सकती.
steps.oasvalidation.SourceMessageNotAvailable 500

नीति के <Source> एलिमेंट में दिया गया वैरिएबल या तो दायरे से बाहर है या उसे हल नहीं किया जा सकता.

steps.oasvalidation.NotMessageVariable 500

<Source> एलिमेंट ऐसे वैरिएबल पर सेट है जो message टाइप नहीं है.

डिप्लॉयमेंट से जुड़ी गड़बड़ियां

ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाले किसी प्रॉक्सी को डिप्लॉय किया जाता है.

गड़बड़ी का नाम वजह
ResourceDoesNotExist <OASResource> एलिमेंट में बताया गया OpenAPI स्पेसिफ़िकेशन मौजूद नहीं है.
ResourceCompileFailed डिप्लॉयमेंट में शामिल OpenAPI स्पेसिफ़िकेशन में ऐसी गड़बड़ियां हैं जो इसे कंपाइल होने से रोकती हैं. इससे आम तौर पर यह पता चलता है कि यह खास जानकारी, अच्छी तरह से बनाई गई OpenAPI स्पेसिफ़िकेशन 3.0 नहीं है.
BadResourceURL <OASResource> एलिमेंट में दिया गया OpenAPI स्पेसिफ़िकेशन प्रोसेस नहीं किया जा सकता. ऐसा तब हो सकता है, जब फ़ाइल, JSON या YAML फ़ाइल न हो या फ़ाइल का यूआरएल सही तरीके से न दिया गया हो.

गड़बड़ी वाले वैरिएबल

ये वैरिएबल तब सेट किए जाते हैं, जब यह नीति रनटाइम के दौरान कोई गड़बड़ी ट्रिगर करती है. ज़्यादा जानकारी के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी देखें.

वैरिएबल जगह उदाहरण
fault.name="fault_name" fault_name, गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम की गड़बड़ियां टेबल में दिया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. fault.name Matches "ResourceDoesNotExist"
oasvalidation.policy_name.failed policy_name, उस नीति का उपयोगकर्ता तय किया गया नाम है जिसकी वजह से गड़बड़ी हुई है. oasvalidation.myoaspolicy.failed = true

काम करने वाली OpenAPI की खास बातें

OASपुष्टि करने की नीति, उन OpenAPI स्पेसिफ़िकेशन सुविधाओं के साथ काम करती है जिनकी कैटगरी के हिसाब से यहां दी गई टेबल में खास जानकारी दी गई है. ऐसी सुविधाएं भी सूची में शामिल हैं जो काम नहीं करतीं.

कैटगरी इनकी अनुमति है ये काम नहीं करते हैं
डेटा टाइप के फ़ॉर्मैट बूलियन
तारीख
तारीख-समय
डबल
ईमेल
फ़्लोट
int32/int64
ipv4/ipv6
md5
sha1/sha256/sha512
स्ट्रिंग
यूरी
uri-template
यूयूआईडी
बाइनरी
बाइट
पासवर्ड
डिक्रिमिनेटर ऑब्जेक्ट मैपिंग
propertyName
लागू नहीं
मीडिया टाइप ऑब्जेक्ट स्कीमा कोड में बदलने का तरीका
उदाहरण
उदाहरण
ऑपरेशन ऑब्जेक्ट पैरामीटर
requestBody
जवाब
सुरक्षा (आंशिक सहायता)
कॉलबैक
बंद किया गया
सर्वर
पैरामीटर ऑब्जेक्ट allowEmptyValue
(query, header, path)
में ज़रूरी है
जवाब
स्कीमा
स्टाइल (deepObject, form, formmatrix, label, pipeDelimited, simple, spaceDelimited)

ध्यान दें: deepObject में सिर्फ़ स्ट्रिंग पैरामीटर इस्तेमाल किए जा सकते हैं; अरे और नेस्ट किए गए ऑब्जेक्ट काम नहीं करते.
allowReserved
बंद किया गया
उदाहरण
उदाहरण
वीडियो
पाथ ऑब्जेक्ट मिटाएं
पाएं
सिर
विकल्प
पैरामीटर
पैच
पोस्ट
डालें
ट्रेस करें
वैरिएबल
सर्वर
मुख्य हिस्से के लिए अनुरोध करें application/json
application/hal+json
ऐप्लिकेशन/x-www-form-urlencoded (encoding ऑब्जेक्ट काम नहीं करता)
कॉन्टेंट
आवश्यक
ऐप्लिकेशन/xml
मल्टीपार्ट/फ़ॉर्म-डेटा
टेक्स्ट/सादा
टेक्स्ट/एक्सएमएल
रिस्पॉन्स ऑब्जेक्ट application/json
application/hal+json
ऐप्लिकेशन/x-www-form-urlencoded (encoding ऑब्जेक्ट काम नहीं करता)
कॉन्टेंट
हेडर
ऐप्लिकेशन/xml
लिंक
टेक्स्ट/सादा
टेक्स्ट/एक्सएमएल
रिस्पॉन्स ऑब्जेक्ट डिफ़ॉल्ट
एचटीटीपी स्टेटस कोड
लागू नहीं
स्कीमा ऑब्जेक्ट $ref
अतिरिक्त प्रॉपर्टी (सिर्फ़ बूलियन फ़्लैग के वैरिएंट के लिए)
allOf (अगर additionalProperties, false है, तो इस पर ध्यान नहीं दिया जाएगा)
anyOf
Enum
exclusiveMaximum/exclusiveMinimum
फ़ॉर्मैट
आइटम
ज़्यादा से ज़्यादा/कम से कम
ज़्यादा से ज़्यादा आइटम/कम से कम आइटम
maxLength/minLength
maxProperties/minProperties
multipleOf
नहीं
अमान्य
oneOf
पैटर्न
प्रॉपर्टी
ज़रूरी है
टाइटल
टाइप
uniqueItems
बंद किया गया
उदाहरण
readOnly
writeOnly
एक्सएमएल
सिक्योरिटी स्कीम ऑब्जेक्ट (header, query) में (अगर type http है, तो इसे अनदेखा किया जाएगा)
नाम
प्रकार (apiKey, http)
bearerFormat
फ़्लो
openIdConnectUrl
स्कीम
सर्वर ऑब्जेक्ट url
वैरिएबल
एक से ज़्यादा सर्वर की परिभाषाएं

मिलते-जुलते विषय