Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
OASValidation politikası hakkında
OASValidation (OpenAPI Spesifikasyonu Doğrulama) politikası, gelen bir isteği veya yanıt mesajını OpenAPI 3.0 spesifikasyonuna (JSON veya YAML) göre doğrulamanıza olanak tanır. Hangi içerik doğrulanır? bölümünü inceleyin.
OASValidation politikası, politikanın eklendiği adım yürütülürken doğrulama için kullanılacak OpenAPI Spesifikasyonunun adını belirtir.
OpenAPI Spesifikasyonu, API proxy paketi içinde yer alan şu standart konumda kaynak olarak depolanır: apiproxy/resources/oas
.
OpenAPI Spesifikasyonu'nun .json
, .yml
, .yaml
uzantısı olmalıdır.
Kaynakları yönetme başlıklı makalede açıklandığı gibi, kullanıcı arayüzünü veya API'yi kullanarak API proxy paketine kaynak olarak bir OpenAPI Spesifikasyonu ekleyin.
.Hangi içerikler doğrulanır?
Aşağıdaki tabloda, OASValidation politikası tarafından doğrulanan istek mesajı içeriği bileşene göre özetlenmiştir.
Bileşenler | Doğrulama isteğinde bulun |
---|---|
Temel yol | API proxy'si tarafından tanımlanan temel yolu doğrular; OpenAPI Specification'da belirtilen temel yolu yoksayar. |
Path | İstek yolunun (temel yol hariç) OpenAPI Spesifikasyonu'nda tanımlanan yol kalıplarından biriyle eşleştiğini doğrular. |
Fiil | OpenAPI Specification'daki yol için fiilin tanımlandığını doğrular. |
İstek mesajı gövdesi |
Not: Politika, istek mesajı gövdesini yalnızca Content-Type ayarı
|
Parametreler |
|
Aşağıdaki tabloda, OASValidation politikası tarafından doğrulanan yanıt mesajı içeriği bileşene göre özetlenmektedir.
Bileşenler | Yanıt doğrulaması |
---|---|
Path | İstek yolunun (temel yol hariç) OpenAPI Spesifikasyonu'nda tanımlanan yol kalıplarından biriyle eşleştiğini doğrular. |
Fiil | OpenAPI Specification'daki yol için fiilin tanımlandığını doğrular. |
Yanıt ileti gövdesi |
|
Örnekler
Aşağıdaki örnekler, OASValidation'ı kullanma yöntemlerinden bazılarını gösterir. politikası uyarınca bir OpenAPI 3.0 Specification
İstek mesajını doğrula
Aşağıdaki örnekte myoaspolicy
politikası, istek mesajının gövdesini
my-spec.json
OpenAPI Spesifikasyonu'nda tanımlanan istek mesajı gövde şeması
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.json</OASResource> <Options> <ValidateMessageBody>true</ValidateMessageBody> </Options> <Source>request</Source> </OASValidation>
İleti gövdesi, OpenAPI Spesifikasyonu'na uygun değilse policies.oasvalidation.Failed
hatası döndürülür.
Parametreleri doğrulama
Aşağıdaki örnekte, veya OpenAPI Spesifikasyonu'nda tanımlanmıştır.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Header>false</Header> <Query>false</Query> <Cookie>false</Cookie> </AllowUnspecifiedParameters> </Options> </OASValidation>
<OASValidation>
öğe
OpenAPI Spesifikasyonu Doğrulama politikasını tanımlar.
Varsayılan Değer | Aşağıdaki Varsayılan Politika sekmesine bakın |
Zorunlu mu? | Zorunlu |
Tür | Karmaşık nesne |
Üst Öğe | Yok |
Alt Öğeler |
<DisplayName> <OASResource> <Source> <Options> <Source> |
Söz dizimi
<OASValidation>
öğesi şu söz dizimini kullanır:
<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>
Varsayılan Politika
Aşağıdaki örnekte, OAS Doğrulama politikası eklediğinizde varsayılan ayarlar gösterilmektedir adımları uygulayın:
<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>
Bu öğe, tüm politikalarda ortak olan aşağıdaki özelliklere sahiptir:
Özellik | Varsayılan | Zorunlu mu? | Açıklama |
---|---|---|---|
name |
Yok | Zorunlu |
Politikanın dahili adı. İsteğe bağlı olarak, politikayı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı, doğal bir dille etiketlemek için |
continueOnError |
yanlış | İsteğe bağlı | Politika başarısız olduğunda hata döndürmek için "false" değerine ayarlayın. Bu, çoğu politika için beklenen bir durumdur. Bir politika başarısız olsa bile akış yürütmenin devam etmesi için değeri "true" olarak ayarlayın. |
enabled |
true | İsteğe bağlı | Politikayı uygulamak için "true" (doğru) değerine ayarlayın. Politikayı "kapalı" hale getirmek için "false" değerine ayarlayın. Politika, bir akışa bağlı kalsa bile zorunlu kılınmaz. |
async |
yanlış | Kullanımdan kaldırıldı | Bu özellik kullanımdan kaldırıldı. |
Alt öğe referansı
Bu bölümde, <OASValidation>
alt öğeleri açıklanmaktadır.
<DisplayName>
Politikayı name
özelliğine ek olarak
farklı, daha doğal bir ada sahip yönetim arayüzü proxy düzenleyicisi.
<DisplayName>
öğesi tüm politikalarda ortaktır.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı. <DisplayName> değerini çıkarırsanız
politikanın name özelliği kullanılıyor |
Tür | Dize |
Üst Öğe | <PolicyElement> |
Alt Öğeler | Yok |
<DisplayName>
öğesi şu söz dizimini kullanır:
Söz dizimi
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
Örnek
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
<DisplayName>
öğesinin özelliği veya alt öğesi yok.
<OASResource>
Doğrulamada kullanılacak OpenAPI Spesifikasyonu'nu belirtir. Bu dosyayı şu şekilde depolayabilirsiniz:
- API proxy paketindeki
/apiproxy/resources/oas
altındaki API proxy kapsamında - API proxy düzenleyicisinin Gezinme görünümünün
Resources
bölümünde.
Daha fazla bilgi için Kaynakları yönetme başlıklı makaleyi inceleyin.
OpenAPI Spesifikasyonu'nu {oas.resource.url}
gibi bir mesaj şablonu kullanarak belirtebilirsiniz.
Bu durumda, oas.resource.url
akış değişkeninin değeri (süslü ayraç içinde) değerlendirilir.
ve çalışma zamanında yük dizesiyle değiştirilir.
Daha fazla bilgi için İleti şablonları başlıklı makaleye bakın.
Varsayılan Değer | Yok |
Zorunlu mu? | Zorunlu |
Tür | Dize |
Üst Öğe |
<OASValidation>
|
Alt Öğeler | Yok |
Söz dizimi
<OASResource>
öğesi şu söz dizimini kullanır:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> ... </OASValidation>
Örnek
Aşağıdaki örnekte, API proxy paketindeki /apiproxy/resources/oas
altında depolanan my-spec.yaml
spesifikasyonuna referans verilmiştir:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> </OASValidation>
<OASResource>
öğesinin özelliği veya alt öğesi yok.
<Options>
Politikayla ilgili seçenekleri yapılandırır.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Karmaşık tür |
Üst Öğe |
<OASValidation>
|
Alt Öğeler |
<ValidateMessageBody> <AllowUnspecifiedParameters> |
Söz dizimi
<Options>
öğesi şu söz dizimini kullanır:
<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>
Örnek
Aşağıdaki örnek, politikanın seçeneklerini yapılandırır. Bu seçeneklerin her biri aşağıda daha ayrıntılı olarak açıklanmıştır.
<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>
Politikanın, mesaj gövdesini OpenAPI Specification'da işlemin istek gövdesi şemasına göre doğrulayıp doğrulamayacağını belirtir. Şunları doğrulamak için true olarak ayarlayın: ileti gövdesi içeriği. Yalnızca ileti gövdesinin var olduğunu doğrulamak için false (yanlış) değerine ayarlayın.
<OASValidation>
için continueOnError
özelliğini ayarlayarak doğrulama hatasından sonra akış yürütme işleminin devam edip etmediğini kontrol edebilirsiniz.
öğesini true olarak ayarlayın.
Varsayılan Değer | false |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Options>
|
Alt Öğeler | Yok |
Söz dizimi
<ValidateMessageBody>
öğesi şu söz dizimini kullanır:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <ValidateMessageBody>[true|false]</ValidateMessageBody> </Options> ... </OASValidation>
Örnek
Aşağıdaki örnek, ileti gövdesi içeriğinin doğrulanmasını etkinleştirir:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <ValidateMessageBody>true</ValidateMessageBody> </Options> </OASValidation>
<AllowUnspecifiedParameters>
Başlık, sorgu veya çerez parametreleri varsa politikanın davranışını yapılandırır OpenAPI Spesifikasyonu'nda tanımlanmayan bir istekte bulunabilir.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Karmaşık tür |
Üst Öğe |
<Options>
|
Alt Öğeler |
<Header> <Query> <Cookie> |
Söz dizimi
<AllowUnspecifiedParameters>
öğesi şu söz dizimini kullanır:
<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>
Örnek
Aşağıdaki örnekte, veya OpenAPI Spesifikasyonu'nda tanımlanmıştır.
<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>
adlı çocuğun alt öğesi)
Başlık parametreleri varsa politikanın davranışını yapılandırır OpenAPI Spesifikasyonu'nda tanımlanmayan bir istekte bulunabilir.
OpenAPI Spesifikasyonu'nda tanımlanmamış istekte başlık parametrelerinin belirtilmesine izin vermek için bu parametreyi true olarak ayarlayın. Aksi takdirde, politika yürütme işleminin başarısız olmasına neden olmak için bu parametreyi false olarak ayarlayın.
Varsayılan Değer | true |
Zorunlu mu? | Boole |
Tür | Karmaşık tür |
Üst Öğe |
<AllowUnspecifiedParameters>
|
Alt Öğeler | Yok |
Söz dizimi
<Header>
öğesi şu söz dizimini kullanır:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <AllowUnspecifiedParameters> <Header>[true|false]</Header> </AllowUnspecifiedParameters> </Options> ... </OASValidation>
Örnek
Aşağıdaki örnek, istekte bir başlık parametresi belirtilirse politikayı başarısız olacak şekilde yapılandırır. veya OpenAPI Spesifikasyonu'nda tanımlanmıştır.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Header>false</Header> </AllowUnspecifiedParameters> </Options> </OASValidation>
<Query>
(<AllowUnspecifiedParameters>
adlı çocuğun alt öğesi)
Sorgu parametreleri varsa politikanın davranışını yapılandırır OpenAPI Spesifikasyonu'nda tanımlanmayan bir istekte bulunabilir.
OpenAPI Spesifikasyonu'nda tanımlanmamış istekte sorgu parametrelerinin belirtilmesine izin vermek için bu parametreyi true olarak ayarlayın. Aksi takdirde, politika yürütme işleminin başarısız olmasına neden olmak için bu parametreyi false olarak ayarlayın.
Varsayılan Değer | true |
Zorunlu mu? | Boole |
Tür | Karmaşık tür |
Üst Öğe |
<AllowUnspecifiedParameters>
|
Alt Öğeler | Yok |
Söz dizimi
<Query>
öğesi şu söz dizimini kullanır:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <AllowUnspecifiedParameters> <Query>[true|false]</Query> </AllowUnspecifiedParameters> </Options> ... </OASValidation>
Örnek
Aşağıdaki örnek, istekte benzersiz bir sorgu parametresi belirtilmişse politikayı başarısız olacak şekilde yapılandırır veya OpenAPI Spesifikasyonu'nda tanımlanmıştır.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Query>false</Query> </AllowUnspecifiedParameters> </Options> </OASValidation>
Çerez parametreleri varsa politikanın davranışını yapılandırır OpenAPI Spesifikasyonu'nda tanımlanmayan bir istekte bulunabilir.
OpenAPI Spesifikasyonu'nda tanımlanmamış istekte çerez parametrelerinin belirtilmesine izin vermek için bu parametreyi true olarak ayarlayın. Aksi takdirde, politika yürütme işleminin başarısız olmasına neden olmak için bu parametreyi false olarak ayarlayın.
Varsayılan Değer | true |
Zorunlu mu? | Boole |
Tür | Karmaşık tür |
Üst Öğe |
<AllowUnspecifiedParameters>
|
Alt Öğeler | Yok |
Söz dizimi
<Cookie>
öğesi şu söz dizimini kullanır:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <AllowUnspecifiedParameters> <Query>[true|false]</Query> </AllowUnspecifiedParameters> </Options> ... </OASValidation>
Örnek
Aşağıdaki örnek, istekte benzersiz bir sorgu parametresi belirtilmişse politikayı başarısız olacak şekilde yapılandırır veya OpenAPI Spesifikasyonu'nda tanımlanmıştır.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Cookie>false</Cookie> </AllowUnspecifiedParameters> </Options> </OASValidation>
<Source>
JSON yük saldırılarına karşı değerlendirilecek JSON mesajı. Bu ayar genellikle şu şekilde ayarlanır:
request
.
Yanıt mesajlarını değerlendirmek için response olarak ayarlayın.
İstek mesajını otomatik olarak değerlendirmek için message olarak ayarlayın
Politika, istek akışına ve yanıta eklendiğinde verilen yanıt mesajına eklendiğinde
akışı sağlar.
Varsayılan Değer | istek |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<Source>
|
Alt Öğeler | Yok |
Söz dizimi
<Source>
öğesi şu söz dizimini kullanır:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Source>[message|request|response]</Source> ... </OASValidation>
Örnek
Aşağıdaki örnekte, politika istek akışına eklendiğinde istek mesajı ve politika yanıt akışına eklendiğinde gösterilen yanıt mesajı otomatik olarak değerlendirilir:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Source>message</Source> </OASValidation>
<Source>
öğesinin özelliği veya alt öğesi yok.
Şemalar
Her politika türü bir XML şemasıyla (.xsd
) tanımlanır. Referans olması amacıyla politika şemaları
GitHub'da bulabilirsiniz.
Hata kodları
Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.
Çalışma zamanı hataları
Politika yürütüldüğünde bu hatalar ortaya çıkabilir.
Hata kodu | HTTP durumu | Neden | |
---|---|---|---|
steps.oasvalidation.Failed |
500 | İstek mesajı gövdesi, sağlanan OpenAPI Specification ile doğrulanamıyor. | |
steps.oasvalidation.SourceMessageNotAvailable |
500 |
Politikanın |
|
steps.oasvalidation.NotMessageVariable |
500 |
|
build |
Dağıtım hataları
Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.
Hata adı | Neden | |
---|---|---|
ResourceDoesNotExist |
<OASResource> öğesinde referans verilen OpenAPI Spesifikasyonu mevcut değil.
|
|
ResourceCompileFailed |
Dağıtıma dahil edilen OpenAPI Spesifikasyonu, derlenmesini engelleyen hatalar içeriyor. Bu genellikle spesifikasyonun, doğru biçimlendirilmiş bir OpenAPI Specification 3.0 olmadığını belirtir. | |
BadResourceURL |
<OASResource> öğesinde referans verilen OpenAPI Spesifikasyonu işlenemiyor. Bu durum, dosya bir JSON veya YAML dosyası değilse ya da dosya URL'si doğru şekilde belirtilmediyse ortaya çıkabilir.
|
Hata değişkenleri
Bu değişkenler, bu politika çalışma zamanında bir hata tetiklediğinde ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler bölümüne bakın.
Değişkenler | Konum | Örnek |
---|---|---|
fault.name="fault_name" |
fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelenen hatanın adıdır. Hata adı, hata kodunun son kısmıdır. | fault.name Matches "ResourceDoesNotExist" |
oasvalidation.policy_name.failed |
policy_name, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. | oasvalidation.myoaspolicy.failed = true |
Desteklenen OpenAPI Specifications özellikleri
OASValidation politikası, aşağıdaki tabloda kategoriye göre özetlenen OpenAPI Specification özelliklerini destekler. Desteklenmeyen özellikler de listelenir.
Kategori | Destekleniyor | Desteklenmiyor |
---|---|---|
Veri türü biçimleri | boole tarih tarih-saat çift e-posta kayma int32/int64 ipv4/ipv6 md5 sha1/sha256/sha512 dize uri uri-template uuid |
ikili bayt şifre |
Ayırıcı nesnesi | eşleme propertyName |
Yok |
Medya türü nesnesi | schema | kodlama örnek örnekler |
İşlem nesnesi | parametreler requestBody yanıt güvenlik (kısmi destek) |
geri aramalar desteği sonlandırıldı sunucular |
Parametre nesnesi | allowEmptyValue şurada: ( query , header , path )zorunlu yanıt şema stil ( deepObject , form , formmatrix , label , pipeDelimited , simple , spaceDelimited )Not: deepObject yalnızca dize parametrelerini destekler; diziler ve iç içe yerleştirilmiş nesneler desteklenmez.
|
allowReserved desteği sonlandırıldı örnek örnekler içerik |
Yollar nesnesi | sil al başlık seçenekler parametreler yama yayın koy iz değişkenler |
sunucular |
İstek gövde nesnesi | application/json application/hal+json application/x-www-form-urlcoding ( encoding nesne desteklenmiyor)içerik zorunlu |
uygulama/xml çok parçalı/form-veri metin/düz metin/xml |
Yanıt nesnesi | application/json application/hal+json application/x-www-form-urlcoding ( encoding nesne desteklenmiyor)içerik üst bilgiler |
uygulama/xml bağlantılar metin/düz metin/xml |
Yanıtlar nesnesi | varsayılan HTTP Durum Kodu |
Yok |
Şema nesnesi | $ref additionalProperties (yalnızca boole işareti varyantı) allOf ( additionalProperties değeri false ise yoksayılır)anyOf numaralandırma exclusiveMaximum/exclusiveMinimum biçim öğeler maksimum/minimum maxItems/minItems maxLength/minLength maxProperties/minProperties multipleOf değil boş değer atanabilir oneOf desen mülkler zorunlu başlık tür uniqueItems |
desteği sonlandırıldı örnek readOnly writeOnly XML |
Güvenlik şeması nesnesi | şunun içinde (header , query ) (type , http ise yoksayılır)ad tür ( apiKey , http )
|
bearerFormat akışlar openIdConnectUrl şema |
Sunucu nesnesi | url değişkenler |
Birden fazla sunucu tanımı |