Per impostazione predefinita, ogni volta che si richiama un'API, viene richiamata una serie di politiche, denominate politiche preflow , prima dell'assemblaggio della politica configurato nella definizione API. Tuttavia, utilizzando un criterio globale è possibile, se necessario, personalizzare completamente il comportamento di questi criteri, controllando se e quando vengono richiamati e con quale personalizzazione.
Politiche di preflusso predefinite
Le seguenti politiche di preflusso sono richiamate per impostazione predefinita:
cors: gestisce le richieste CORS (cross - origin resource sharing) per l'API, richiamate se CORS è abilitato nelle impostazioni di definizione dell'API.
wsdl: gestisce le richieste WSDL.
html-page: per un'API GraphQL , se l'opzione dell'editor GraphQL è abilitata, restituisce la pagina HTML GraphQL .
client-identification: esamina le credenziali della chiave API presenti nella richiesta API e corrisponde al piano API tramite cui l'API di destinazione viene resa disponibile al client.
ratelimit: applica lo schema del limite di frequenza configurato per il piano API corrispondente. Quando viene raggiunto il limite di frequenza, la richiesta viene rifiutata.
security: esegue i controlli di autenticazione e autorizzazione richiesti dall'operazione e dall'API di destinazione. se il requisito di sicurezza non è soddisfatto, la domanda è respinta.
Configurazione di una politica globale per personalizzare le politiche di preflusso
Per personalizzare le politiche di preflusso, completare la seguente procedura:
- Aggiungere la seguente proprietà alla sezione
info: del file .yaml del criterio globale:mode: mode_type
Dove
mode_type è una delle seguenti opzioni:
after-builtin - questo significa che le tue politiche di preflusso vengono applicate dopo le politiche di preflusso predefinite.
before-builtin - questo significa che le tue politiche di preflusso vengono applicate prima delle politiche di preflusso predefinite.
full-custom - ciò significa che è necessario aggiungere esplicitamente le politiche di preflusso all'assemblaggio della politica globale. Tuttavia, è possibile rimuovere, riposizionare o sostituire qualsiasi criterio di pre-flusso, a seconda delle necessità.
- Configurare le politiche nel proprio assieme di politiche globali come richiesto.
Un esempio di politica globale
after-builtin :
global-policy: 1.0.0
info:
name: foo-example
title: foo-example
version: 2.0.0
mode: after-builtin
gateways:
- datapower-api-gateway
assembly:
execute:
- set-variable:
version: 2.0.0
title: set-variable
actions:
- set: message.headers.X-Flexible-Preflow
value: 'Hello reboot global policy 1 on catalog 1 this policy will be executed after all default builtins'
type: string
Un esempio di politica globale
before-builtin :
global-policy: 1.0.0
info:
name: foo-example
title: foo-example
version: 2.0.0
mode: before-builtin
gateways:
- datapower-api-gateway
assembly:
execute:
- set-variable:
version: 2.0.0
title: set-variable
actions:
- set: message.headers.X-Flexible-Preflow
value: 'Hello reboot global policy 1 on catalog 1 this policy will be executed before all default builtin policies'
type: string
Un esempio di politica globale
full-custom :
global-policy: 1.0.0
info:
name: preflow-4-actions
title: preflow-4-actions
version: 2.0.0
mode: full-custom
gateways:
- datapower-api-gateway
assembly:
execute:
- cors:
version: 2.0.0
title: cors-in-preflow
- wsdl:
title: default-wsdl
- html-page:
title: html-page-in-preflow
output: message
version: 2.0.0
- helloworld:
version: 1.0.0
title: helloworld
- client-identification:
version: 2.0.0
title: ci-in-preflow
- ratelimit:
version: 2.0.0
title: assembly-rt-in-preflow
source: plan-default
- security:
version: 2.0.0
title: sec-in-preflow
- set-variable:
version: 2.0.0
title: set-variable
actions:
- set: message.headers.X-Flexible-Preflow
value: 'Hello reboot with 4 actions'
type: string
- Distribuisci la politica globale come politica globale di pre - richiesta.