Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
OASValidation politikası hakkında
OASValidation (OpenAPI Specification Validation) politikası, gelen bir isteği veya yanıt mesajını OpenAPI 3.0 Specification (JSON veya YAML) ile karşılaştırarak doğrulamanızı sağlar. Hangi içerikler doğrulanır? bölümüne bakın.
OASValidation politikası, politikanın eklendiği adım yürütüldüğünde doğrulama için kullanılacak OpenAPI Spesifikasyonu'nun adını belirtir.
OpenAPI Spesifikasyonu, API proxy paketi içinde yer alan şu standart konumda kaynak olarak depolanıyor: apiproxy/resources/oas
.
OpenAPI Spesifikasyonu'nun bir .json
, .yml
, .yaml
uzantısı olmalıdır.
Kaynakları yönetme bölümünde açıklandığı gibi, kullanıcı arayüzü veya API'yi kullanarak API proxy paketine kaynak olarak OpenAPI Spesifikasyonu ekleme.
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 Spesifikasyonu'nda belirtilen temel yolu yoksayar. |
Path | İstek yolunun (temel yol eksi olarak) OpenAPI Spesifikasyonu'nda tanımlanan yol kalıplarından biriyle eşleştiğini doğrular. |
Fiil | Fiilin, OpenAPI Spesifikasyonu'nda yol için tanımlandığını doğrular. |
İstek iletisi gövdesi |
Not: Politika, yalnızca İçerik Türü |
Parametreler |
|
Aşağıdaki tabloda, OASValidation politikası tarafından doğrulanan yanıt mesajı içeriği bileşene göre özetlenmiştir.
Bileşenler | Yanıt doğrulaması |
---|---|
Path | İstek yolunun (temel yol eksi olarak) OpenAPI Spesifikasyonu'nda tanımlanan yol kalıplarından biriyle eşleştiğini doğrular. |
Fiil | Fiilin, OpenAPI Spesifikasyonu'nda yol için tanımlandığını doğrular. |
Yanıt mesajı gövdesi |
|
Numuneler
Aşağıdaki örneklerde, mesajları OpenAPI 3.0 Spesifikasyonu'na göre doğrulamak için OASValidation politikasını kullanabileceğiniz yöntemlerden bazıları gösterilmektedir.
İstek mesajını doğrulayın
Aşağıdaki örnekte myoaspolicy
politikası, istek mesajının gövdesini, işlemin my-spec.json
OpenAPI Spesifikasyonu'nda tanımlanan istek mesajı gövde şemasıyla karşılaştırarak doğrular.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.json</OASResource> <Options> <ValidateMessageBody>true</ValidateMessageBody> </Options> <Source>request</Source> </OASValidation>
İleti gövdesi OpenAPI Spesifikasyonu'na uymuyorsa policies.oasvalidation.Failed
hatası döndürülür.
Parametreleri doğrulama
Aşağıdaki örnek, istekte OpenAPI Specification'da tanımlanmayan bir başlık, sorgu veya çerez parametresi belirtildiğinde politikayı başarısız olacak şekilde yapılandırı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 Specification Doğrulama politikasını tanımlar.
Varsayılan Değer | Aşağıdaki Varsayılan Politika sekmesine bakın |
Zorunlu mu? | Gerekli |
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, Apigee kullanıcı arayüzünde akışınıza OAS Doğrulama politikası eklediğinizde varsayılan ayarlar gösterilmektedir:
<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ı, yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı, daha doğal bir adla etiketlemek için name
özelliğine ek olarak kullanın.
<DisplayName>
öğesi tüm politikalarda ortaktır.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı. <DisplayName> özelliğini çıkarırsanız politikanın name özelliğinin değeri kullanılır |
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 yoktur.
<OASResource>
Doğrulanacak OpenAPI Spesifikasyonu'nu belirtir. Bu dosyayı depolayabilirsiniz:
- API proxy paketindeki
/apiproxy/resources/oas
altındaki API proxy kapsamında - API proxy düzenleyicisinin Gezgini görünümünün
Resources
bölümünde.
Daha fazla bilgi edinmek için Kaynakları yönetme başlıklı makaleyi inceleyin.
OpenAPI Spesifikasyonu'nu {oas.resource.url}
gibi bir ileti şablonu kullanarak belirtebilirsiniz.
Bu durumda, oas.resource.url
akış değişkeninin değeri (süslü küme parantezleri 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? | Gerekli |
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
spesifikasyonu referans alınmıştır:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> </OASValidation>
<OASResource>
öğesinin özelliği veya alt öğesi yoktur.
<Seçenekler>
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. 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, ileti gövdesini OpenAPI Specification'daki işlemin istek gövdesi şemasına göre doğrulayıp doğrulamayacağını belirtir. Mesaj gövdesi içeriğini doğrulamak için true değerine ayarlayın. Yalnızca ileti gövdesinin mevcut olduğunu doğrulamak için false (yanlış) değerine ayarlayın.
<OASValidation>
öğesi için continueOnError
özelliğini true olarak ayarlayarak akış yürütmesinin doğrulama hatası sonrasında da devam edip etmediğini kontrol edebilirsiniz.
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çeriklerinin doğrulanmasını etkinleştirir:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <ValidateMessageBody>true</ValidateMessageBody> </Options> </OASValidation>
<AllowUnspecifiedParameters>
İstekte OpenAPI Spesifikasyonu'nda tanımlanmamış başlık, sorgu veya çerez parametreleri varsa politikanın davranışını yapılandırır.
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 örnek, istekte OpenAPI Specification'da tanımlanmayan bir başlık, sorgu veya çerez parametresi belirtildiğinde politikayı başarısız olacak şekilde yapılandırı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>
alt öğesi)
İstekte OpenAPI Spesifikasyonu'nda tanımlanmayan başlık parametreleri varsa politikanın davranışını yapılandırır.
OpenAPI Spesifikasyonu'nda tanımlanmayan başlık parametrelerinin istekte belirtilmesine izin vermek için bu parametreyi true olarak ayarlayın. Aksi takdirde, politikanın yürütülememesi 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 OpenAPI Spesifikasyonu'nda tanımlanmayan bir başlık parametresi belirtilirse politika başarısız olacak şekilde yapılandırılır.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Header>false</Header> </AllowUnspecifiedParameters> </Options> </OASValidation>
<Query>
(<AllowUnspecifiedParameters>
alt öğesi)
İstekte OpenAPI Spesifikasyonu'nda tanımlanmamış sorgu parametreleri varsa politikanın davranışını yapılandırır.
OpenAPI Spesifikasyonu'nda tanımlanmamış sorgu parametrelerinin istekte belirtilmesine izin vermek için bu parametreyi true olarak ayarlayın. Aksi takdirde, politikanın yürütülememesi 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 OpenAPI Spesifikasyonu'nda tanımlanmayan bir sorgu parametresi belirtilirse politika başarısız olacak şekilde yapılandırılır.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Query>false</Query> </AllowUnspecifiedParameters> </Options> </OASValidation>
İstekte OpenAPI Spesifikasyonu'nda tanımlanmayan çerez parametreleri varsa politikanın davranışını yapılandırır.
OpenAPI Spesifikasyonu'nda tanımlanmamış çerez parametrelerinin istekte belirtilmesine izin vermek için bu parametreyi true olarak ayarlayın. Aksi takdirde, politikanın yürütülememesi 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 OpenAPI Spesifikasyonu'nda tanımlanmayan bir sorgu parametresi belirtilirse politika başarısız olacak şekilde yapılandırılı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 iletisi. Genellikle istemci uygulamalarından gelen istekleri değerlendirmeniz gerekeceğinden, bu değer çoğunlukla request
olarak ayarlanır.
Yanıt mesajlarını değerlendirmek için Yanıt olarak ayarlayın.
Politika istek akışına eklendiğinde istek mesajını ve politika yanıt akışına eklendiğinde yanıt mesajını otomatik olarak değerlendirmek için message değerine ayarlayın.
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 yanıt akışına politika eklendiğinde 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 yoktur.
Şemalar
Her politika türü, XML şemasıyla (.xsd
) tanımlanır. GitHub'da, politika şemalarını referans olarak 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 double float int32/int64 ipv4/ipv6 md5 sha1/sha256/sha512 string uri uri-template uuid |
ikili program bayt şifre |
Ayırıcı nesnesi | eşleme propertyName |
Yok |
Medya türü nesnesi | schema | kodlama örnek örnekler |
İşlem nesnesi | parametreler requestBody yanıtlar güvenlik (kısmi destek) |
geri çağırma (geri çağırma) kullanımdan kaldırılan sunucular |
Parametre nesnesi | allowBlankValue ( query , header , path )zorunlu yanıtlar ş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.
|
allowAyrılmış kullanımdan kaldırıldı örnek örnekler içerik |
Yol nesnesi | delete get head options parametreler patch post put trace değişkenler |
Sunucular |
İstek gövde nesnesi | application/json application/hal+json application/x-www-form-urlcoding ( encoding nesnesi desteklenmiyor)content gerekli |
application/xml multipart/form-data metin/düz metin/xml |
Yanıt nesnesi | uygulama/json application/hal+json application/x-www-form-urlencoded ( encoding nesne desteklenmiyor)content üstbilgiler |
uygulama/xml bağlantılar metin/düz metin/xml |
Yanıt nesnesi | varsayılan HTTP Durum Kodu |
Yok |
Şema nesnesi | $ref additionalProperties (yalnızca boole bayrak varyantı) allOf ( additionalProperties değeri false ise yoksayılır)anyOf enum uniqueMax/exclMinimum format items maximum/minimum maxItems/minItems maxLength/minLength maxProperties/minProperties multipleOf not nullable oneOf pattern benzersiz özellikler |
kullanımdan kaldırıldı örnek salt okunur writeOnly xml |
Güvenlik şeması nesnesi | (header , query ) (type , http ise yoksayılır)ad tür ( apiKey , http )
|
bearerFormat akışlar openIdConnectUrl şema |
Sunucu nesnesi | url değişkenleri |
Birden çok sunucu tanımı |