operation-switch

Use a construção operation-switch quando desejar executar conjuntos de políticas alternativos, condicionais à operação que está sendo chamada.

Suporte de gateway

Tabela 1. Tabela que mostra quais gateways suportam esta política e a versão correspondente da política
Gateway Versão da política
DataPower® Gateway (v5 compatible) 1.0.0
DataPower API Gateway 2.0.0

Este tópico descreve como configurar a política na sua fonte OpenAPI; para obter detalhes sobre como configurar a política na interface de usuário do assembly, consulte operation-switch.

Sobre

Uma operação pode ser descrita com um par verb/path, ou com um operationId. Os operationIds são sequências ou nomes que são definidos no documento OpenAPI .

A política operation-switch possui o formato a seguir:
- operation-switch:
  version: version
  title: title
  description: description
  case:
    - operations:
      - verb: operation_verb_1_1
        path: operation_path_1_1
      - verb: operation_verb_1_2
        path: operation_path_1_2
                     .
                     .
                     .
           further verb/path combinations
                     .
                     .
                     .
      execute: 
        policy_assembly_1 ...
    - operations:
      - verb: operation_verb_2_1
        path: operation_path_2_1
      - verb: operation_verb_2_2
        path: operation_path_2_2
                     .
                     .
                     .
           further verb/path combinations
                     .
                     .
                     .
      execute: 
        policy_assembly_2 ...
                   .
                   .
                   .
    - operations:
      - operationID_3_1
      - operationID_3_2
      - operationID_3_3
        
                     .
                     .
                     .
           further operationIDs
                     .
                     .
                     .
      execute: 
        policy_assembly_3 ...
                   .
                   .
                   .
         further operations sections
                   .
                   .
                   .
 

Para cada seção operations:, se a operação que está sendo chamada corresponder a alguma das combinações verb/path ou sequências operationId listadas nessa seção operations:, o conjunto de política definido na seção execute: será executado. Portanto, cada seção operations: define a execução de um conjunto de políticas condicional à operação que está sendo chamada.

É possível ter quantas seções operations: você desejar, e cada seção operations: pode ter uma ou mais combinações verb/path ou sequências operationId.

A seção execute: pode definir qualquer conjunto de políticas, incluindo políticas operation-switch adicionais.

Propriedades

Tabela 2. Propriedades da política de comutação de operações
Propriedade Obrigatório Descrição Tipo de dados Contido em
version True O número de versão da política sequência N/D
title Não Um título para a política. sequência N/D
description Não Uma descrição da política. sequência N/D
case True Uma matriz contendo diferentes maiúsculas e minúsculas, cada entada contém um campo operations e execute. matriz (objeto) N/D
operations True As operações às quais maiúsculas e minúsculas se aplicam. objeto case
verb Não Um verbo da operação.
Valores válidos:
  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • PATCH
  • OPTIONS
sequência operations
path Não Um caminho relativo para um terminal individual. Por exemplo, /account_status. sequência operations
operationID Não A operação é definida em OpenAPI A operação de política se refere à operação OpenAPI . sequência operations
execute True O conjunto de políticas que você desejará executar se a operação que está sendo chamada corresponder a qualquer uma das combinações de verbo/caminho. Para obter mais informações, consulte execute sequência case

Exemplo

Exemplo que define operações de correspondência com combinações verb/path:
# carry out different redaction actions depending on the operation

- operation-switch:
  version: 1.0.0
  title: clear_region_and_set_body
  case:
    - operations:
      - verb: GET
        path: /account_details
      execute:
        - redact:
            title: remove secret field
            actions:
              - action: remove
                from: all
                path: /document/user/secret
    - operations:
      - verb: GET
        path: /account_status
      execute:
        - redact:
            title: redact address
            actions:
              - action: redact
                from: response
                path: //*[@name='secondaryAddress']/*[@name='streetAddress']
Exemplo que define a operação de correspondência com operationIDs:
# match on operationIDs

- operation-switch:
  title: customer_actions
  case:
    - operations:
      - getCustomerByName
      - deleteCustomer
      - addACustomer
      execute:
           .
           .
           .