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 स्पेसिफ़िकेशन में बताए गए बेसपाथ को अनदेखा करता है. |
पथ | यह पुष्टि करता है कि अनुरोध पाथ (बेसपाथ को हटाकर), OpenAPI स्पेसिफ़िकेशन में बताए गए पाथ पैटर्न से मेल खाता है या नहीं. |
क्रिया | यह पुष्टि करता है कि OpenAPI स्पेसिफ़िकेशन में, पाथ के लिए क्रिया तय की गई है. |
अनुरोध का मैसेज |
ध्यान दें: नीति, अनुरोध मैसेज के मुख्य हिस्से की पुष्टि, OpenAPI स्पेसिफ़िकेशन के हिसाब से सिर्फ़ तब करती है, जब Content-Type को
|
पैरामीटर |
|
नीचे दी गई टेबल में, OASValidation नीति के हिसाब से पुष्टि किए गए जवाब के मैसेज के कॉन्टेंट के बारे में बताया गया है.
घटक | प्रतिक्रिया पुष्टि |
---|---|
पथ | यह पुष्टि करता है कि अनुरोध पाथ (बेसपाथ को हटाकर), OpenAPI स्पेसिफ़िकेशन में बताए गए पाथ पैटर्न से मेल खाता है या नहीं. |
क्रिया | यह पुष्टि करता है कि OpenAPI स्पेसिफ़िकेशन में, पाथ के लिए क्रिया तय की गई है. |
जवाब का मुख्य हिस्सा |
|
सैंपल
यहां दिए गए उदाहरणों में, OpenAPI 3.0 स्पेसिफ़िकेशन के हिसाब से मैसेज की पुष्टि करने के लिए, OASValidation नीति का इस्तेमाल करने के कुछ तरीके बताए गए हैं.
अनुरोध वाले मैसेज की पुष्टि करना
नीचे दिए गए उदाहरण में, myoaspolicy
नीति अनुरोध मैसेज के मुख्य हिस्से की पुष्टि करती है. यह पुष्टि, my-spec.json
OpenAPI Specification में बताए गए ऑपरेशन के अनुरोध मैसेज के मुख्य हिस्से के स्कीमा के हिसाब से की जाती है.
<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 की पुष्टि करने की नीति जोड़ने पर, डिफ़ॉल्ट सेटिंग दिख रही हैं:
<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
सेक्शन में.
ज़्यादा जानकारी के लिए, संसाधन मैनेज करना लेख पढ़ें.
{oas.resource.url}
जैसे मैसेज टेंप्लेट का इस्तेमाल करके, OpenAPI स्पेसिफ़िकेशन तय किया जा सकता है.
इस मामले में, कर्ली ब्रैकेट में मौजूद फ़्लो वैरिएबल oas.resource.url
की वैल्यू का आकलन किया जाएगा और रनटाइम के दौरान, पेलोड स्ट्रिंग में बदल दिया जाएगा.
ज़्यादा जानकारी के लिए, मैसेज टेंप्लेट लेख पढ़ें.
डिफ़ॉल्ट वैल्यू | कोई नहीं |
क्या यह ज़रूरी है? | ज़रूरी है |
स्ट्रीम किस तरह की है | स्ट्रिंग |
पैरंट एलिमेंट |
<OASValidation>
|
चाइल्ड एलिमेंट | कोई नहीं |
सिंटैक्स
<OASResource>
एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> ... </OASValidation>
उदाहरण
इस उदाहरण में, एपीआई प्रॉक्सी बंडल में /apiproxy/resources/oas
के तहत सेव की गई my-spec.yaml
स्पेसिफ़िकेशन का रेफ़रंस दिया गया है:
<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 स्पेसिफ़िकेशन में, मैसेज के मुख्य हिस्से की पुष्टि, ऑपरेशन के अनुरोध के मुख्य हिस्से के स्कीमा के हिसाब से करनी चाहिए या नहीं. मैसेज के मुख्य हिस्से के कॉन्टेंट की पुष्टि करने के लिए, इसे सही है पर सेट करें. सिर्फ़ मैसेज के मुख्य हिस्से के मौजूद होने की पुष्टि करने के लिए, इसकी वैल्यू को गलत है पर सेट करें.
पुष्टि करने से जुड़ी गड़बड़ी के बाद, फ़्लो को जारी रखने या नहीं करने का कंट्रोल आपके पास होता है. इसके लिए, <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 स्पेसिफ़िकेशन में तय नहीं किए गए हैं, इस पैरामीटर को सही है पर सेट करें. इसके अलावा, नीति लागू न हो, इसके लिए इस पैरामीटर को गलत है पर सेट करें.
डिफ़ॉल्ट वैल्यू | सही |
क्या यह ज़रूरी है? | बूलियन |
स्ट्रीम किस तरह की है | जटिल टाइप |
पैरंट एलिमेंट |
<AllowUnspecifiedParameters>
|
चाइल्ड एलिमेंट | कोई नहीं |
सिंटैक्स
<Header>
एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <AllowUnspecifiedParameters> <Header>[true|false]</Header> </AllowUnspecifiedParameters> </Options> ... </OASValidation>
उदाहरण
नीचे दिए गए उदाहरण में, नीति को इस तरह कॉन्फ़िगर किया गया है कि अगर अनुरोध में ऐसा हेडर पैरामीटर दिया गया है जो OpenAPI Specification में तय नहीं किया गया है, तो अनुरोध अस्वीकार कर दिया जाए.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Header>false</Header> </AllowUnspecifiedParameters> </Options> </OASValidation>
<Query>
(<AllowUnspecifiedParameters>
का बच्चा)
अगर अनुरोध में ऐसे क्वेरी पैरामीटर मौजूद हैं जिन्हें OpenAPI स्पेसिफ़िकेशन में तय नहीं किया गया है, तो नीति के व्यवहार को कॉन्फ़िगर करता है.
अनुरोध में ऐसे क्वेरी पैरामीटर शामिल करने की अनुमति देने के लिए जिन्हें OpenAPI स्पेसिफ़िकेशन में नहीं बताया गया है, इस पैरामीटर को सही पर सेट करें. इसके अलावा, नीति लागू न हो, इसके लिए इस पैरामीटर को गलत है पर सेट करें.
डिफ़ॉल्ट वैल्यू | सही |
क्या यह ज़रूरी है? | बूलियन |
स्ट्रीम किस तरह की है | जटिल टाइप |
पैरंट एलिमेंट |
<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 स्पेसिफ़िकेशन में नहीं बताए गए हैं, इस पैरामीटर को सही पर सेट करें. इसके अलावा, नीति लागू न हो, इसके लिए इस पैरामीटर को गलत है पर सेट करें.
डिफ़ॉल्ट वैल्यू | सही |
क्या यह ज़रूरी है? | बूलियन |
स्ट्रीम किस तरह की है | जटिल टाइप |
पैरंट एलिमेंट |
<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
पर सेट किया जाता है, क्योंकि आपको आम तौर पर क्लाइंट ऐप्लिकेशन से आने वाले अनुरोधों का आकलन करना होगा.
जवाब वाले मैसेज का आकलन करने के लिए, जवाब पर सेट करें.
नीति को अनुरोध फ़्लो से अटैच करने पर, अनुरोध मैसेज का अपने-आप आकलन करने के लिए, इस विकल्प को मैसेज पर सेट करें. साथ ही, नीति को जवाब फ़्लो से अटैच करने पर, जवाब मैसेज का अपने-आप आकलन करने के लिए, इस विकल्प को मैसेज पर सेट करें.
डिफ़ॉल्ट वैल्यू | 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 |
बाइनरी बाइट पासवर्ड |
डिस्क्रिमिनेटर ऑब्जेक्ट | mapping propertyName |
लागू नहीं |
मीडिया टाइप ऑब्जेक्ट | स्कीमा | कोड में बदलना उदाहरण उदाहरण |
ऑपरेशंस ऑब्जेक्ट | 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 ज़रूरी है |
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 ऑब्जेक्ट | डिफ़ॉल्ट एचटीटीपी स्टेटस कोड |
लागू नहीं |
स्कीमा ऑब्जेक्ट | $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 |
सुरक्षा स्कीम ऑब्जेक्ट | in (header , query ) (type के http होने पर अनदेखा किया जाता है)name type ( apiKey , http )
|
bearerFormat flows openIdConnectUrl scheme |
सर्वर ऑब्जेक्ट | url variables |
एक से ज़्यादा सर्वर की परिभाषाएं |