आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
OASValidation नीति के बारे में जानकारी
OASValidation (OpenAPI स्पेसिफ़िकेशन की पुष्टि) नीति की मदद से, OpenAPI 3.0 स्पेसिफ़िकेशन (JSON या YAML) के ख़िलाफ़, आने वाले अनुरोध या जवाब के मैसेज की पुष्टि की जा सकती है. देखें कि किस तरह के कॉन्टेंट की पुष्टि की जाती है?
OASValidation नीति, OpenAPI स्पेसिफ़िकेशन का नाम तय करती है. इसका इस्तेमाल, पुष्टि करने के लिए किया जाता है. ऐसा तब होता है, जब नीति से जुड़ा चरण पूरा होता है.
OpenAPI स्पेसिफ़िकेशन को एपीआई प्रॉक्सी बंडल में, यहां दिए गए स्टैंडर्ड लोकेशन में एक संसाधन के तौर पर सेव किया जाता है: apiproxy/resources/oas.
OpenAPI स्पेसिफ़िकेशन में .json, .yml, .yaml एक्सटेंशन होना चाहिए.
यूआई या एपीआई का इस्तेमाल करके, एपीआई प्रॉक्सी बंडल में OpenAPI स्पेसिफ़िकेशन को संसाधन के तौर पर जोड़ें. इसके बारे में संसाधन मैनेज करना लेख में बताया गया है.
किस तरह के कॉन्टेंट की पुष्टि की जाती है?
यहां दी गई टेबल में, अनुरोध के मैसेज के कॉन्टेंट के बारे में खास जानकारी दी गई है. इस कॉन्टेंट की पुष्टि OASValidation नीति के तहत, कॉम्पोनेंट के हिसाब से की जाती है.
| घटक | सत्यापन का अनुरोध करें |
|---|---|
| बेसपाथ | यह एपीआई प्रॉक्सी के तय किए गए basepath की पुष्टि करता है. साथ ही, OpenAPI स्पेसिफ़िकेशन में दिए गए basepath को अनदेखा करता है. |
| पथ | इस कुकी का काम यह पुष्टि करना है कि अनुरोध का पाथ (बेसपाथ को छोड़कर), OpenAPI स्पेसिफ़िकेशन में तय किए गए पाथ पैटर्न में से किसी एक से मेल खाता हो. |
| क्रिया | इससे यह पुष्टि की जाती है कि OpenAPI स्पेसिफ़िकेशन में, पाथ के लिए वर्ब तय किया गया है. |
| अनुरोध के मुख्य हिस्से में मौजूद मैसेज |
ध्यान दें: यह नीति, OpenAPI स्पेसिफ़िकेशन के हिसाब से अनुरोध के मैसेज के मुख्य हिस्से की पुष्टि सिर्फ़ तब करती है, जब Content-Type को |
| पैरामीटर |
|
यहां दी गई टेबल में, कॉम्पोनेंट के हिसाब से जवाब के मैसेज के कॉन्टेंट के बारे में खास जानकारी दी गई है. इस कॉन्टेंट की पुष्टि 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 के यूज़र इंटरफ़ेस (यूआई) में अपने फ़्लो में 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 |
लागू नहीं | ज़रूरी |
नीति का अंदरूनी नाम. इसके अलावा, मैनेजमेंट एलिमेंट के यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति एलिमेंट को किसी अलग नाम से इस्तेमाल करने के लिए, |
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 स्पेसिफ़िकेशन में तय नहीं किए गए हैं, तो यह नीति के काम करने के तरीके को कॉन्फ़िगर करता है.
अगर आपको अनुरोध में ऐसे हेडर पैरामीटर तय करने हैं जो 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 |
नीति के |
|
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 स्पेसिफ़िकेशन की उन सुविधाओं के साथ काम करती है जिनके बारे में यहां दी गई टेबल में कैटगरी के हिसाब से बताया गया है. साथ ही, उन सुविधाओं की सूची भी दी गई है जो काम नहीं करती हैं.
| कैटगरी | समर्थित | ये काम नहीं करते हैं |
|---|---|---|
| डेटा टाइप के फ़ॉर्मैट | बूलियन तारीख तारीख और समय डबल ईमेल फ़्लोट int32/int64 ipv4/ipv6 md5 sha1/sha256/sha512 स्ट्रिंग यूआरआई यूआरआई-टेंप्लेट यूआईडी |
binary byte password |
| डिस्क्रिमिनेटर ऑब्जेक्ट | mapping propertyName |
लागू नहीं |
| मीडिया टाइप ऑब्जेक्ट | स्कीमा | encoding example examples |
| ऑपरेशंस ऑब्जेक्ट | parameters requestBody responses security (partial support) |
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 |
| पाथ ऑब्जेक्ट | 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 |
एक से ज़्यादा सर्वर की परिभाषाएं |