Personalizzare le politiche di preflusso

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.

Prima di iniziare

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:

  1. 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à.
  2. 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
  3. Distribuisci la politica globale come politica globale di pre - richiesta.