Criar políticas avançadas
Esta unidade fornece uma referência para as seguintes políticas de Gerenciamento de API:
- Controlar fluxo - Aplica-se condicionalmente a instruções de políticas com base nos resultados da avaliação do booliano expressions.
- Encaminhar solicitação -Encaminha a solicitação ao serviço de back-end.
- Simultaneidade de limite - impede que as políticas embutidas sejam executadas mais do que o número especificado de solicitações por vez.
- Registrar no Hub de Eventos – envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger.
- Resposta fictícia – anula a execução de pipeline e retorna uma resposta fictícia diretamente para o chamador.
- Repetir - repete a execução das instruções de política, se e até que a condição seja atendida. A execução é repetida nos intervalos de tempo especificados e até a contagem de repetição especificada.
Fluxo de controle
A política choose
aplica instruções de política incluídas com base no resultado da avaliação de expressões booleanas, semelhante a uma if-then-else ou uma construção de opção em uma linguagem de programação.
<choose>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<otherwise>
<!— one or more policy statements to be applied if none of the above conditions are true -->
</otherwise>
</choose>
A política de fluxo de controle deve conter pelo menos um elemento <when/>
. O elemento <otherwise/>
é opcional. As condições nos elementos <when/>
são avaliadas na ordem de aparecimento na política. As instruções de política entre o primeiro elemento <when/>
são aplicadas quando o atributo de condição é verdadeiro. As políticas entre o elemento <otherwise/>
, se presentes, serão aplicadas se todos os atributos de condição do elemento <when/>
forem falsos.
Encaminhar solicitação
A política forward-request
encaminha a solicitação de entrada para o serviço de back-end especificado no contexto da solicitação. A URL do serviço de back-end é especificada nas configurações de API e pode ser alterada usando a política definir o serviço de back-end.
A remoção dessa política faz com que a solicitação não seja encaminhada ao serviço de back-end. As políticas na seção de saída são avaliadas imediatamente após a conclusão bem-sucedida das políticas na seção de entrada.
<forward-request timeout="time in seconds" follow-redirects="true | false"/>
Simultaneidade de limite
A política limit-concurrency
impede que políticas fechadas sejam executadas por mais do que o número especificado de solicitações a qualquer momento. Quando as solicitações excedem esse número, novas solicitações falham imediatamente com um código de status de 429 Solicitações Demais.
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Registrar no Hub de Eventos
A política log-to-eventhub
envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger. Como o nome sugere, a política é usada para salvar informações de contexto de solicitação ou de resposta solicitadas para a análise online ou offline.
<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
Expression returning a string to be logged
</log-to-eventhub>
Resposta fictícia
O mock-response
, como o nome indica, é usado para simular APIs e operações. Ele anula a execução normal de pipeline e retorna uma resposta fictícia ao chamador. A política sempre tenta retornar respostas da mais alta fidelidade. Ela prefere exemplos de conteúdo de resposta, sempre que disponíveis. Ela gera respostas de amostra a partir de esquemas, quando os esquemas são fornecidos e os exemplos não são. Se exemplos ou esquemas não forem encontrados, respostas sem conteúdo serão retornadas.
<mock-response status-code="code" content-type="media type"/>
Repetir
A política retry
executa suas políticas filho uma vez e tenta realizar sua execução novamente até condition
da nova tentativa se tornar false
ou count
da nova tentativa ser esgotada.
<retry
condition="boolean expression or literal"
count="number of retry attempts"
interval="retry interval in seconds"
max-interval="maximum retry interval in seconds"
delta="retry interval delta in seconds"
first-fast-retry="boolean expression or literal">
<!-- One or more child policies. No restrictions -->
</retry>
Retornar resposta
A política return-response
anula a execução do pipeline e retorna uma resposta padrão ou personalizada para o chamador. A resposta padrão é 200 OK
sem corpo. A resposta personalizada pode ser especificada por meio de declarações de política ou variável de contexto. Quando ambos são fornecidos, a instrução de política modifica a variável de contexto antes de ser retornada ao chamador.
<return-response response-variable-name="existing context variable">
<set-header/>
<set-body/>
<set-status/>
</return-response>
Outros recursos
- Visite políticas de Gerenciamento de API para obter mais exemplos de política.
- Tratamento de erro em políticas de Gerenciamento de API