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

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

OASValidation नीति के बारे में जानकारी

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

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

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

लेख पढ़ें.

किस तरह के कॉन्टेंट की पुष्टि की जाती है?

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

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

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

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

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

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

सैंपल

यहां दिए गए उदाहरणों में, OpenAPI 3.0 स्पेसिफ़िकेशन के हिसाब से मैसेज की पुष्टि करने के लिए, OASValidation नीति का इस्तेमाल करने के कुछ तरीके बताए गए हैं.

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

यहां दिए गए उदाहरण में, 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 गड़बड़ी का मैसेज दिखता है.

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

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

<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 के यूज़र इंटरफ़ेस (यूआई) में अपने फ़्लो में OAS Validation नीति जोड़ने पर, डिफ़ॉल्ट सेटिंग दिखाई गई हैं:

<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 एट्रिब्यूट की वैल्यू का इस्तेमाल किया जाता है
टाइप स्ट्रिंग
पैरंट एलिमेंट <PolicyElement>
चाइल्ड एलिमेंट कोई नहीं

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

सिंटैक्स

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

उदाहरण

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

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

<OASResource>

इससे पता चलता है कि किस OpenAPI स्पेसिफ़िकेशन के हिसाब से पुष्टि करनी है. इस फ़ाइल को यहां सेव किया जा सकता है:

  • एपीआई प्रॉक्सी बंडल में /apiproxy/resources/oas के नीचे, एपीआई प्रॉक्सी स्कोप पर
  • एपीआई प्रॉक्सी एडिटर के नेविगेटर व्यू के 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> एलिमेंट में कोई एट्रिब्यूट या चाइल्ड एलिमेंट नहीं है.

<Options>

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

डिफ़ॉल्ट वैल्यू लागू नहीं
ज़रूरी है? वैकल्पिक
टाइप कॉम्प्लेक्स टाइप
पैरंट एलिमेंट <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>

<ValidateMessageBody>

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

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

डिफ़ॉल्ट वैल्यू गलत
ज़रूरी है? वैकल्पिक
टाइप बूलियन
पैरंट एलिमेंट <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>

उदाहरण

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

<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>

उदाहरण

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

<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>

उदाहरण

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

<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>

उदाहरण

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

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

<Source>

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

डिफ़ॉल्ट वैल्यू 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 स्पेसिफ़िकेशन की इन सुविधाओं के साथ काम करता है

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

कैटगरी इनकी अनुमति है ये काम नहीं करते हैं
डेटा टाइप के फ़ॉर्मैट बूलियन
तारीख
तारीख और समय
डबल
ईमेल
फ़्लोट
int32/int64
ipv4/ipv6
md5
sha1/sha256/sha512
स्ट्रिंग
यूआरआई
यूआरआई-टेंप्लेट
यूआईडी
binary
byte
password
डिस्क्रिमिनेटर ऑब्जेक्ट mapping
propertyName
लागू नहीं
मीडिया टाइप ऑब्जेक्ट स्कीमा encoding
example
examples
ऑपरेशंस ऑब्जेक्ट parameters
requestBody
responses
security (partial support)
कॉलबैक
अब काम नहीं करता
सर्वर
पैरामीटर ऑब्जेक्ट allowEmptyValue
in (query, header, path)
required
responses
schema
style (deepObject, form, formmatrix, label, pipeDelimited, simple, spaceDelimited)

ध्यान दें: deepObject सिर्फ़ स्ट्रिंग पैरामीटर के साथ काम करता है. यह ऐरे और नेस्ट किए गए ऑब्जेक्ट के साथ काम नहीं करता.
allowReserved
deprecated
example
examples
content
पाथ ऑब्जेक्ट delete
get
head
options
parameters
patch
post
put
trace
variables
सर्वर
अनुरोध का मुख्य हिस्सा application/json
application/hal+json
application/x-www-form-urlencoded (encoding ऑब्जेक्ट काम नहीं करता)
content
required
application/xml
multipart/form-data
text/plain
text/xml
जवाब ऑब्जेक्ट application/json
application/hal+json
application/x-www-form-urlencoded (encoding ऑब्जेक्ट काम नहीं करता)
content
headers
application/xml
links
text/plain
text/xml
Responses ऑब्जेक्ट default
एचटीटीपी स्टेटस कोड
लागू नहीं
स्कीमा ऑब्जेक्ट $ref
additionalProperties (boolean फ़्लैग वैरिएंट के लिए ही)
allOf (अगर additionalProperties false है, तो इसे अनदेखा किया जाता है)
anyOf
enum
exclusiveMaximum/exclusiveMinimum
format
items
maximum/minimum
maxItems/minItems
maxLength/minLength
maxProperties/minProperties
multipleOf
not
nullable
oneOf
pattern
properties
required
title
type
uniqueItems
deprecated
example
readOnly
writeOnly
xml
सुरक्षा स्कीम ऑब्जेक्ट in (header, query) (अगर type http है, तो इसे अनदेखा किया जाता है)
name
type (apiKey, http)
bearerFormat
flows
openIdConnectUrl
scheme
सर्वर ऑब्जेक्ट url
variables
एक से ज़्यादा सर्वर की परिभाषाएं

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