आपको Apigee Edge से जुड़ा दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. info
OASValidation नीति के बारे में जानकारी
OASValidation (OpenAPI स्पेसिफ़िकेशन की पुष्टि) नीति की मदद से, OpenAPI 3.0 स्पेसिफ़िकेशन (JSON या YAML) के हिसाब से, आने वाले अनुरोध या जवाब के मैसेज की पुष्टि की जा सकती है. किस कॉन्टेंट की पुष्टि की जाती है? देखें
OASValidation नीति, OpenAPI स्पेसिफ़िकेशन का नाम तय करती है. इसका इस्तेमाल, पुष्टि करने के लिए तब किया जाता है, जब नीति से जुड़ा चरण लागू होता है.
ओपनएपीआई स्पेसिफ़िकेशन को एपीआई प्रॉक्सी बंडल में, इस स्टैंडर्ड जगह पर एक संसाधन के तौर पर सेव किया जाता है: apiproxy/resources/oas.
OpenAPI स्पेसिफ़िकेशन में .json, .yml, .yaml एक्सटेंशन होना चाहिए.
यूज़र इंटरफ़ेस (यूआई) या एपीआई का इस्तेमाल करके, एपीआई प्रॉक्सी बंडल में OpenAPI स्पेसिफ़िकेशन को संसाधन के तौर पर जोड़ें. इसके बारे में संसाधन मैनेज करें में बताया गया है.
किस कॉन्टेंट की पुष्टि की जाती है?
यहां दी गई टेबल में, कॉम्पोनेंट के हिसाब से अनुरोध मैसेज के कॉन्टेंट की खास जानकारी दी गई है. इस कॉन्टेंट की पुष्टि, OASValidation नीति के तहत की जाती है.
| घटक | सत्यापन का अनुरोध करें |
|---|---|
| Basepath | यह एपीआई प्रॉक्सी से तय किए गए बेसपाथ की पुष्टि करता है. साथ ही, OpenAPI स्पेसिफ़िकेशन में बताए गए बेसपाथ को अनदेखा करता है. |
| पथ | यह पुष्टि करता है कि अनुरोध का पाथ (बेसपाथ को छोड़कर), OpenAPI स्पेसिफ़िकेशन में तय किए गए पाथ पैटर्न में से किसी एक से मेल खाता है. |
| क्रिया | यह पुष्टि करता है कि OpenAPI स्पेसिफ़िकेशन में पाथ के लिए वर्ब तय किया गया है. |
| अनुरोध के मैसेज का मुख्य हिस्सा |
ध्यान दें: यह नीति, अनुरोध के मैसेज के मुख्य हिस्से की पुष्टि OpenAPI स्पेसिफ़िकेशन के हिसाब से सिर्फ़ तब करती है, जब कॉन्टेंट टाइप को |
| पैरामीटर |
|
यहां दी गई टेबल में, रिस्पॉन्स मैसेज के कॉन्टेंट की खास जानकारी दी गई है. इसकी पुष्टि, OASValidation नीति के तहत कॉम्पोनेंट के हिसाब से की जाती है.
| घटक | प्रतिक्रिया पुष्टि |
|---|---|
| पथ | यह पुष्टि करता है कि अनुरोध का पाथ (बेसपाथ को छोड़कर), OpenAPI स्पेसिफ़िकेशन में तय किए गए पाथ पैटर्न में से किसी एक से मेल खाता है. |
| क्रिया | यह पुष्टि करता है कि OpenAPI स्पेसिफ़िकेशन में पाथ के लिए वर्ब तय किया गया है. |
| जवाब वाले मैसेज का मुख्य हिस्सा |
|
सैंपल
यहां दिए गए उदाहरणों में, 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 यूज़र इंटरफ़ेस (यूआई) में अपने फ़्लो में ओएएस की पुष्टि करने की नीति जोड़ने पर, डिफ़ॉल्ट सेटिंग दिखाई गई हैं:
<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 |
लागू नहीं | ज़रूरी |
नीति का अंदरूनी नाम. इसके अलावा, मैनेजमेंट एलिमेंट के यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति एलिमेंट को किसी अलग नाम से इस्तेमाल करने के लिए, |
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सेक्शन में.
ज़्यादा जानकारी के लिए, संसाधन मैनेज करना लेख पढ़ें.
मैसेज टेंप्लेट का इस्तेमाल करके, OpenAPI स्पेसिफ़िकेशन तय किया जा सकता है. जैसे, {oas.resource.url}.
इस मामले में, फ़्लो वैरिएबल 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><Header> (<AllowUnspecifiedParameters> का चाइल्ड)
अगर अनुरोध में ऐसे हेडर पैरामीटर मौजूद हैं जो OpenAPI स्पेसिफ़िकेशन में तय नहीं किए गए हैं, तो यह नीति के काम करने के तरीके को कॉन्फ़िगर करता है.
अनुरोध में हेडर पैरामीटर तय करने की अनुमति देने के लिए, इस पैरामीटर को true पर सेट करें. ये ऐसे पैरामीटर होते हैं जिन्हें OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है. अगर ऐसा नहीं है, तो इस पैरामीटर को 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 स्पेसिफ़िकेशन में तय नहीं किए गए हैं, तो यह नीति के व्यवहार को कॉन्फ़िगर करता है.
अनुरोध में कुकी पैरामीटर तय करने की अनुमति देने के लिए, इस पैरामीटर को true पर सेट करें. ये पैरामीटर, OpenAPI स्पेसिफ़िकेशन में तय नहीं किए गए हैं. अगर ऐसा नहीं है, तो इस पैरामीटर को 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 पर सेट करें. साथ ही, जब नीति को जवाब
फ़्लो से अटैच किया जाता है, तो जवाब मैसेज का अपने-आप आकलन करने के लिए, इसे 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 |
नीति के |
|
steps.oasvalidation.NotMessageVariable |
500 |
|
build |
डिप्लॉयमेंट से जुड़ी गड़बड़ियां
ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाले किसी प्रॉक्सी को डिप्लॉय किया जाता है.
| गड़बड़ी का नाम | वजह | |
|---|---|---|
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 स्पेसिफ़िकेशन की उन सुविधाओं के साथ काम करती है जिनके बारे में यहां दी गई टेबल में, कैटगरी के हिसाब से खास जानकारी दी गई है. इसमें उन सुविधाओं की सूची भी दी गई है जो काम नहीं करतीं.
| कैटगरी | समर्थित | ये काम नहीं करते हैं |
|---|---|---|
| डेटा टाइप के फ़ॉर्मैट | boolean date date-time double float int32/int64 ipv4/ipv6 md5 sha1/sha256/sha512 string uri uri-template uuid |
binary byte password |
| Discriminator ऑब्जेक्ट | mapping propertyName |
लागू नहीं |
| मीडिया टाइप ऑब्जेक्ट | स्कीमा | एन्कोडिंग उदाहरण उदाहरण |
| Operations ऑब्जेक्ट | parameters requestBody responses security (कुछ हद तक काम करता है) |
callbacks deprecated servers |
| पैरामीटर ऑब्जेक्ट | allowEmptyValue in ( query, header, path)required responses schema style ( deepObject, form, formmatrix, label, pipeDelimited, simple, spaceDelimited)ध्यान दें: deepObject सिर्फ़ स्ट्रिंग पैरामीटर के साथ काम करता है. इसमें अरे और नेस्ट किए गए ऑब्जेक्ट काम नहीं करते.
|
allowReserved deprecated example examples content |
| Paths ऑब्जेक्ट | delete get head options parameters patch post put trace variables |
सर्वर |
| अनुरोध के मुख्य हिस्से का ऑब्जेक्ट | application/json application/hal+json application/x-www-form-urlencoded ( encoding ऑब्जेक्ट काम नहीं करता)content ज़रूरी है |
application/xml multipart/form-data text/plain text/xml |
| Response object | application/json application/hal+json application/x-www-form-urlencoded ( encoding ऑब्जेक्ट काम नहीं करता)content headers |
application/xml links text/plain text/xml |
| Responses ऑब्जेक्ट | default एचटीटीपी स्टेटस कोड |
लागू नहीं |
| स्कीमा ऑब्जेक्ट | $ref additionalProperties (सिर्फ़ बूलियन फ़्लैग वैरिएंट) 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 |
| सुरक्षा स्कीम ऑब्जेक्ट | (header, query) में (अगर type, http है, तो इसे अनदेखा कर दिया जाता है)name type ( apiKey, http)
|
bearerFormat flows openIdConnectUrl scheme |
| सर्वर ऑब्जेक्ट | url variables |
एक से ज़्यादा सर्वर की परिभाषाएं |