Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
Informazioni sul criterio OASValidation
Il criterio OASValidation (OpenAPI Specification Validation) consente di convalidare una richiesta o un messaggio di risposta in entrata in base a una specifica OpenAPI 3.0, utilizzando il formato JSON o YAML. Consulta la sezione Quali contenuti vengono convalidati?
Il criterio OASValidation specifica il nome della specifica OpenAPI da utilizzare per la convalida quando viene eseguito il passaggio a cui è associato il criterio.
La specifica OpenAPI viene archiviata come risorsa nella seguente posizione standard all'interno del bundle proxy API: apiproxy/resources/oas
.
Il documento della specifica OpenAPI deve avere un'estensione .json
, .yml
o .yaml
.
Aggiungi una specifica OpenAPI come risorsa a un bundle proxy API utilizzando l'interfaccia utente o l'API, come descritto in Gestire le risorse.
Questo è un criterio standard e può essere implementato in qualsiasi tipo di ambiente. Non tutti gli utenti devono conoscere i tipi di criteri e di ambiente. Per informazioni sui tipi di criteri e sulla disponibilità con ogni tipo di ambiente, consulta Tipi di criteri.
Quali contenuti vengono convalidati?
La seguente tabella riassume i contenuti del messaggio di richiesta convalidati dal criterio OASValidation, per componente.
Componenti | Richiedi convalida |
---|---|
Percorso base | Convalida il basepath definito dal proxy API; ignora il basepath specificato nella specifica OpenAPI. |
Percorso | Verifica che il percorso della richiesta (meno il basepath) corrisponda a uno dei pattern di percorso definiti nella specifica OpenAPI. |
Verbo | Verifica che il verbo sia definito per il percorso nella specifica OpenAPI. |
Corpo del messaggio della richiesta |
Nota: il criterio convalida il corpo del messaggio di una richiesta in base alla specifica OpenAPI solo se il Content-Type è impostato su |
Parametri |
|
La tabella seguente riassume i contenuti dei messaggi di risposta convalidati dal criterio OASValidation, per componente.
Componenti | Convalida della risposta |
---|---|
Percorso | Verifica che il percorso della richiesta (meno il basepath) corrisponda a uno dei pattern di percorso definiti nella specifica OpenAPI. |
Verbo | Verifica che il verbo sia definito per il percorso nella specifica OpenAPI. |
Corpo del messaggio di risposta |
|
Esempi
I seguenti esempi mostrano alcuni dei modi in cui è possibile utilizzare il criterio OASValidation per convalidare i messaggi in base a una specifica OpenAPI 3.0.
Convalida messaggio di richiesta
Nell'esempio seguente, il criterio myoaspolicy
convalida il corpo del messaggio di richiesta in base allo schema del corpo del messaggio dell'operazione definito nella specifica OpenAPI my-spec.json
.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.json</OASResource> <Options> <ValidateMessageBody>true</ValidateMessageBody> </Options> <Source>request</Source> </OASValidation>
Se il corpo del messaggio non è conforme alla specifica OpenAPI, viene restituito un errore policies.oasvalidation.Failed
.
Convalida parametri
L'esempio seguente consente di configurare il criterio in modo che abbia esito negativo se un parametro di intestazione, query o cookie viene specificato nella richiesta non definita nella specifica 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>
elemento
Definisce il criterio di convalida delle specifiche OpenAPI.
Valore predefinito | Consulta la scheda Criterio predefinito di seguito |
Obbligatorio? | Obbligatorio |
Tipo | Oggetto complesso |
Elemento principale | n/d |
Elementi secondari |
<DisplayName> <OASResource> <Source> <Options> <Source> |
Sintassi
L'elemento <OASValidation>
utilizza la seguente sintassi:
<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>
Criterio predefinito
L'esempio seguente mostra le impostazioni predefinite quando aggiungi un criterio di convalida OAS al flusso nell'interfaccia utente di 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>
Questo elemento ha i seguenti attributi comuni a tutti i criteri:
Attributo | Predefinito | Obbligatorio? | Descrizione |
---|---|---|---|
name |
N/A | Obbligatorio |
Il nome interno del criterio. Il valore dell'attributo Facoltativamente, utilizza l'elemento |
continueOnError |
falso | Facoltativo | Imposta su false per restituire un errore in caso di errore del criterio. Questo è un comportamento previsto per
la maggior parte dei criteri. Imposta su true per continuare l'esecuzione del flusso anche dopo un errore nel criterio. Vedi anche:
|
enabled |
true | Facoltativo | Imposta su true per applicare il criterio. Imposta su false per disattivare il
criterio. Il criterio non verrà applicato anche se rimane collegato a un flusso. |
async |
falso | Deprecato | Questo attributo è stato ritirato. |
Riferimento elemento secondario
In questa sezione vengono descritti gli elementi secondari di <OASValidation>
.
<DisplayName>
Utilizzalo in aggiunta all'attributo name
per etichettare il criterio nell'editor proxy dell'interfaccia utente di gestione con un nome diverso e più naturale.
L'elemento <DisplayName>
è comune a tutti i criteri.
Valore predefinito | N/A |
Obbligatorio? | Facoltativo. Se ometti <DisplayName> , viene utilizzato il valore dell'attributo name del criterio. |
Tipo | Stringa |
Elemento principale | <PolicyElement> |
Elementi secondari | Nessuna esperienza |
La sintassi dell'elemento <DisplayName>
è la seguente:
Sintassi
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Esempio
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
L'elemento <DisplayName>
non ha attributi o elementi secondari.
<OASResource>
Specifica la specifica OpenAPI in base a cui eseguire la convalida. Puoi archiviare questo file:
- Nell'ambito del proxy API in
/apiproxy/resources/oas
nel bundle proxy API - Nella sezione
Resources
della visualizzazione Navigatore dell'editor del proxy API.
Per saperne di più, vedi Gestire le risorse.
Puoi specificare la specifica OpenAPI utilizzando un modello di messaggio, ad esempio {oas.resource.url}
.
In questo caso, il valore della variabile di flusso oas.resource.url
(in parentesi graffe) verrà valutato e sostituito nella stringa del payload in fase di runtime.
Per saperne di più, vedi Modelli di messaggio.
Valore predefinito | Nessuna |
Obbligatorio? | Obbligatorio |
Tipo | String |
Elemento principale |
<OASValidation>
|
Elementi secondari | Nessuna |
Sintassi
L'elemento <OASResource>
utilizza la seguente sintassi:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> ... </OASValidation>
Esempio
L'esempio seguente fa riferimento alla specifica my-spec.yaml
archiviata in /apiproxy/resources/oas
nel bundle proxy API:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> </OASValidation>
L'elemento <OASResource>
non ha attributi o elementi secondari.
<Opzioni>
Consente di configurare le opzioni per il criterio.
Valore predefinito | n/d |
Obbligatorio? | Facoltativo |
Tipo | Tipo complesso |
Elemento principale |
<OASValidation>
|
Elementi secondari |
<ValidateMessageBody> <AllowUnspecifiedParameters> |
Sintassi
L'elemento <Options>
utilizza la seguente sintassi:
<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>
Esempio
L'esempio seguente configura le opzioni del criterio. Ognuna di queste opzioni è descritta dettagliatamente di seguito.
<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>
Consente di specificare se il criterio deve convalidare il corpo del messaggio in base allo schema del corpo della richiesta dell'operazione nella specifica OpenAPI. Impostalo su true per convalidare i contenuti del corpo del messaggio. Impostalo su false per confermare solo che il corpo del messaggio esista.
Puoi controllare se l'esecuzione del flusso continua dopo un errore di convalida impostando l'attributo continueOnError
per l'elemento <OASValidation>
su true.
Valore predefinito | false |
Obbligatorio? | Facoltativo |
Tipo | Booleano |
Elemento principale |
<Options>
|
Elementi secondari | Nessuna |
Sintassi
L'elemento <ValidateMessageBody>
utilizza la seguente sintassi:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <ValidateMessageBody>[true|false]</ValidateMessageBody> </Options> ... </OASValidation>
Esempio
L'esempio seguente consente la convalida dei contenuti del corpo del messaggio:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <ValidateMessageBody>true</ValidateMessageBody> </Options> </OASValidation>
<AllowUnspecifiedParameters>
Consente di configurare il comportamento del criterio se nella richiesta sono presenti parametri di intestazione, query o cookie che non sono definiti nella specifica OpenAPI.
Valore predefinito | n/d |
Obbligatorio? | Facoltativo |
Tipo | Tipo complesso |
Elemento principale |
<Options>
|
Elementi secondari |
<Header> <Query> <Cookie> |
Sintassi
L'elemento <AllowUnspecifiedParameters>
utilizza la seguente sintassi:
<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>
Esempio
L'esempio seguente consente di configurare il criterio in modo che abbia esito negativo se un parametro di intestazione, query o cookie viene specificato nella richiesta non definita nella specifica 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>
(secondario di <AllowUnspecifiedParameters>
)
Consente di configurare il comportamento del criterio se nella richiesta sono presenti parametri di intestazione che non sono definiti nella specifica OpenAPI.
Per consentire la specifica nella richiesta di parametri di intestazione che non sono definiti nella specifica OpenAPI, imposta questo parametro su true. In caso contrario, imposta questo parametro su false per impedire l'esecuzione del criterio.
Valore predefinito | true |
Obbligatorio? | Booleano |
Tipo | Tipo complesso |
Elemento principale |
<AllowUnspecifiedParameters>
|
Elementi secondari | Nessuna |
Sintassi
L'elemento <Header>
utilizza la seguente sintassi:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <AllowUnspecifiedParameters> <Header>[true|false]</Header> </AllowUnspecifiedParameters> </Options> ... </OASValidation>
Esempio
L'esempio seguente configura il criterio in modo che abbia esito negativo se nella richiesta viene specificato un parametro di intestazione che non è definito nella specifica OpenAPI.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Header>false</Header> </AllowUnspecifiedParameters> </Options> </OASValidation>
<Query>
(secondario di <AllowUnspecifiedParameters>
)
Consente di configurare il comportamento del criterio se nella richiesta sono presenti parametri di ricerca che non sono definiti nella specifica OpenAPI.
Per consentire di specificare nella richiesta parametri di ricerca che non sono definiti nella specifica OpenAPI, imposta questo parametro su true. In caso contrario, imposta questo parametro su false per impedire l'esecuzione del criterio.
Valore predefinito | true |
Obbligatorio? | Booleano |
Tipo | Tipo complesso |
Elemento principale |
<AllowUnspecifiedParameters>
|
Elementi secondari | Nessuna |
Sintassi
L'elemento <Query>
utilizza la seguente sintassi:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <AllowUnspecifiedParameters> <Query>[true|false]</Query> </AllowUnspecifiedParameters> </Options> ... </OASValidation>
Esempio
L'esempio seguente configura il criterio in modo che abbia esito negativo se nella richiesta viene specificato un parametro di query non definito nella specifica OpenAPI.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Query>false</Query> </AllowUnspecifiedParameters> </Options> </OASValidation>
Consente di configurare il comportamento del criterio se nella richiesta sono presenti parametri di cookie che non sono definiti nella specifica OpenAPI.
Per consentire l'indicazione nella richiesta di parametri dei cookie che non sono definiti nella specifica OpenAPI, imposta questo parametro su true. In caso contrario, imposta questo parametro su false per impedire l'esecuzione del criterio.
Valore predefinito | true |
Obbligatorio? | Booleano |
Tipo | Tipo complesso |
Elemento principale |
<AllowUnspecifiedParameters>
|
Elementi secondari | Nessuna |
Sintassi
L'elemento <Cookie>
utilizza la seguente sintassi:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Options> <AllowUnspecifiedParameters> <Query>[true|false]</Query> </AllowUnspecifiedParameters> </Options> ... </OASValidation>
Esempio
L'esempio seguente configura il criterio in modo che abbia esito negativo se nella richiesta viene specificato un parametro di query non definito nella specifica OpenAPI.
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Options> <AllowUnspecifiedParameters> <Cookie>false</Cookie> </AllowUnspecifiedParameters> </Options> </OASValidation>
<Source>
Messaggio JSON da valutare contro attacchi di payload JSON. In genere è impostato su
request
, perché in genere dovrai valutare le richieste in entrata dalle app client.
Imposta su risposta per valutare i messaggi di risposta.
Imposta su message per valutare automaticamente il messaggio di richiesta quando il criterio è associato al flusso di richiesta e il messaggio di risposta quando il criterio è allegato al flusso di risposta.
Valore predefinito | request |
Obbligatorio? | Facoltativo |
Tipo | String |
Elemento principale |
<Source>
|
Elementi secondari | Nessuna |
Sintassi
L'elemento <Source>
utilizza la seguente sintassi:
<OASValidation name="policy_name"> <OASResource>oas://specname[.json|.yaml|.yml]</OASResource> <Source>[message|request|response]</Source> ... </OASValidation>
Esempio
L'esempio seguente valuta automaticamente il messaggio di richiesta quando il criterio viene associato al flusso di richiesta e il messaggio di risposta quando il criterio viene associato al flusso di risposta:
<OASValidation name="myoaspolicy"> <OASResource>oas://my-spec.yaml</OASResource> <Source>message</Source> </OASValidation>
L'elemento <Source>
non ha attributi o elementi secondari.
Schema per questo criterio
Ogni tipo di criterio è definito da uno schema XML (.xsd
). Per riferimento, gli schemi dei criteri sono disponibili su GitHub.
Codici di errore
Questa sezione descrive i codici e i messaggi di errore che vengono restituiti e le variabili di errore impostate da Apigee quando questo criterio attiva un errore. Queste informazioni sono importanti per sapere se si stanno sviluppando regole di errore per gestire gli errori. Per scoprire di più, consulta gli articoli Cosa devi sapere sugli errori relativi alle norme e Gestione degli errori.
Errori di runtime
Questi errori possono verificarsi quando il criterio viene eseguito.
Codice di errore | Stato HTTP | Causa |
---|---|---|
steps.oasvalidation.Failed |
400 |
Il corpo del messaggio della richiesta non può essere convalidato in base alla specifica OpenAPI fornita. |
steps.oasvalidation.Failed |
500 |
Il corpo del messaggio di risposta non può essere convalidato in base alla specifica OpenAPI fornita. |
steps.oasvalidation.SourceMessageNotAvailable |
500 |
La variabile specificata nell'elemento |
steps.oasvalidation.NonMessageVariable |
500 |
L'elemento |
Errori di deployment
Questi errori possono verificarsi quando esegui il deployment di un proxy contenente questo criterio.
Nome errore | Causa | |
---|---|---|
ResourceDoesNotExist |
La specifica OpenAPI a cui viene fatto riferimento nell'elemento <OASResource> non esiste.
|
|
ResourceCompileFailed |
La specifica OpenAPI inclusa nel deployment contiene errori che ne impediscono la compilazione. In genere, ciò indica che la specifica non è una specifica OpenAPI 3.0 ben strutturata. | |
BadResourceURL |
Impossibile elaborare la specifica OpenAPI a cui viene fatto riferimento nell'elemento <OASResource> . Questo può accadere se il file non è un file JSON o YAML oppure se l'URL del file non è specificato correttamente.
|
Variabili di errore
Queste variabili vengono impostate quando questo criterio attiva un errore in fase di runtime. Per maggiori informazioni, consulta la sezione Cosa devi sapere sugli errori dei criteri.
Variabile | Descrizione | Esempio |
---|---|---|
fault.category |
La categoria dell'errore. Quando il criterio rifiuta una richiesta, viene sempre conservato Step . |
fault.category = "Step" |
fault.name |
Il nome dell'errore, indicato nella precedente tabella Errori di runtime. Il nome del guasto è l'ultima parte del codice di errore. | fault.name Matches "ResourceDoesNotExist" |
fault.reason |
Il motivo dell'errore. Si tratta di una stringa leggibile che spiega il motivo dell'errore. | OASValidation OAS-1 with resource "oas://my-spec1.yaml": failed with reason: "[ERROR - POST operation not allowed on path '/persons/13'.: []]" |
fault.subcategory |
La sottocategoria del guasto. Quando il criterio rifiuta una richiesta, viene sempre conservato OASValidationFailure . |
fault.subcategory = "OASValidationFailure" |
OASValidation.policy_name.failed |
policy_name è il nome specificato dall'utente del criterio che ha generato l'errore. | OASValidation.myoaspolicy.failed = true |
Funzionalità supportate dalle specifiche OpenAPI
Il criterio OASValidation supporta le funzionalità della specifica OpenAPI riassunte nella tabella seguente, per categoria. Vengono elencate anche le funzionalità non supportate.
Categoria | Supportato | Funzionalità non supportata |
---|---|---|
Formati dei tipi di dati | booleano data data-ora doppio float int32/int64 ipv4/ipv6 md5 sha1/sha256/sha512 string uri uri-template uuid |
password byte codice binario |
Oggetto discriminatore | mapping propertyName |
N/A |
Oggetto tipo multimediale | schema | codifica esempio esempi |
Oggetto operazioni | parametri requestBody responses security (supporto parziale) |
callback deprecati server |
Oggetto Parametri | allowvoidValue in ( query , header , path )obbligatorio lo stile di risposte ( deepObject , form , formmatrix , label , pipeDelimited , simple , spaceDelimited )Nota: deepObject supporta solo i parametri stringa; gli array e gli oggetti nidificati non sono supportati. |
allowPrenotato deprecato esempio esempi contenuti |
Oggetto Paths | elimina get head opzioni parametri applicazione post put trace variabili |
Server |
Richiedi oggetto di corpo | application/json application/hal+json application/x-www-form-urlcoded ( encoding oggetto non supportato)contenuti obbligatori |
applicazione/xml multipart/form-data text/plain text/xml |
Oggetto risposta | application/json application/hal+json application/x-www-form-urlcoded ( encoding oggetto non supportato)content headers |
applicazione/xml link testo/normale testo/xml |
Oggetto Risposte | predefinito Codice di stato HTTP |
N/A |
Oggetto schema | $ref additionalProperties (solo per variante con flag booleano) allOf (ignorato se additionalProperties è false )anyOf enum uniqueMax/uniqueminimum formato elementi max/minimum maxItems/minItems maxLength/minLength maxProperties/minProperties multipleOf not nullable oneOf pattern titlesunivoco proprietà obbligatoria |
deprecato esempio readOnly writeOnly xml |
Oggetto schema di sicurezza | in (header , query ) (ignorata se type è http )nome tipo ( apiKey , http )
|
BearerFormat Flussi openIdConnectUrl schema |
Oggetto server | variabili url |
Più definizioni di server |
Utilizzo di pattern nello schema
Lo standard di specifica OpenAPI consente alle specifiche di stabilire un schema
per descrivere il tipo di dati di un parametro o campo. Per un parametro o un campo di tipo stringa, lo schema può anche definire un pattern
, che è un'espressione regolare (regex) che definisce moduli validi per la stringa.
Considera ad esempio il seguente frammento di specifica OpenAPI:
paths: /products/{product-id}: get: operationId: getProduct summary: Get product by id description: returns information regarding a product, by id parameters: - name: product-id in: path description: id of the product required: true schema: type: string pattern: '^\w{3}-\d{4}$'
Questa specifica richiede che per l'operazione getProduct
, il parametro product-id
deve essere conforme alla regex specificata, che stabilisce una sequenza di 3 caratteri alfanumerici, un trattino e 4 cifre decimali.
La specifica OpenAPI si adatta allo standard JSON Schema Validation per definire formalmente il comportamento del pattern durante la convalida del valore della stringa e allo standard JSON Schema Core per suggerimenti agli autori dello schema relativi al set limitato di sintassi delle espressioni regolari. Quest'ultimo standard consiglia di evitare l'uso di lookaround (lookahead e lookbehind), backreference ed espressioni di caratteri ottali, tra le altre caratteristiche, all'interno di pattern all'interno dei documenti OpenAPI Specification.
Per impostazione predefinita, Apigee convalida il documento della specifica OpenAPI a cui fa riferimento il criterio OASValidation e segnala gli errori se il documento della specifica non è nel formato corretto. Apigee inoltre convalida i pattern regex nel documento di specifica e segnala i problemi rilevati.
È importante notare che se utilizzi funzionalità delle espressioni regolari al di fuori del sottoinsieme consigliato, Apigee non convaliderà l'espressione regolare e sospenderà qualsiasi ulteriore convalida del documento di specifica OpenAPI. Se è presente un errore nel documento o nell'espressione regolare che utilizza una funzionalità esterna al sottoinsieme consigliato o se la funzionalità dell'espressione regolare non è supportata dal runtime di Apigee, l'errore verrà rilevato solo in fase di runtime, quando il criterio viene eseguito.
La tabella seguente fornisce alcuni esempi.
Pattern | Comportamento |
---|---|
^\w{3}-\d{4}$ |
Il pattern è valido. Utilizza solo le caratteristiche regex all'interno del sottoinsieme consigliato. Apigee consentirà il salvataggio o l'importazione del proxy e, in fase di runtime, il criterio OASValidation funzionerà come previsto, convalidando il parametro in base al pattern. |
^([a-z]\w{3}-\d{4}$ |
Il pattern non è valido. Manca una parentesi di chiusura. Il pattern non utilizza caratteristiche regex al di fuori del sottoinsieme consigliato. Apigee segnalerà questo errore nel momento in cui importi o salvi il proxy API. |
^(?![a-z]\w{3}-\d{4}$ |
Il pattern non è valido. Come nell'esempio precedente, manca una parentesi chiusa. Tuttavia, Apigee non segnalerà questo errore nel momento in cui salvi o importi il proxy API, perché la regex utilizza un lookahead negativo, che non rientra nel sottoinsieme consigliato delle funzionalità delle espressioni regolari. L'errore verrà rilevato solo in fase di runtime, quando il criterio viene eseguito. |
^(?![a-z])\w{3}-\d{4}$ |
Il pattern è valido, ma utilizza un lookahead negativo, che non rientra nel sottoinsieme consigliato di funzionalità regex. Apigee sospenderà la convalida del documento della specifica OpenAPI. In fase di runtime, quando esegui il criterio OASValidation che fa riferimento a una specifica utilizzando questo pattern, poiché il runtime Apigee in realtà supporta i lookahead negativi, Apigee applicherà correttamente questa espressione regolare per convalidare il valore parametro. |
^(a)?b(?(1)c|d)$ |
Il pattern è valido, ma utilizza un gruppo di acquisizione condizionale, che non rientra nel sottoinsieme consigliato di funzionalità regex. Apigee sospenderà la convalida del documento della specifica OpenAPI. In fase di runtime, quando esegui il criterio OASValidation che fa riferimento a una specifica utilizzando questo pattern, poiché il runtime Apigee non supporta questa funzionalità regex, Apigee restituirà un errore. |
Ti consigliamo di utilizzare solo il sottoinsieme di funzionalità consigliato nell'espressione regolare per evitare errori di runtime.