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 de expressões boolianas.
- Encaminhar solicitação – Encaminha a solicitação ao serviço de back-end.
- Limitar a simultaneidade – Impede que as políticas delimitadas 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.
- Simular resposta – Anula a execução do pipeline e retorna uma resposta fictícia diretamente ao 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 precisa 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 do serviço de back-end definida.
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"/>
Limitar a simultaneidade
A política limit-concurrency impede que políticas delimitadas sejam executadas 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>
Fazer logon nos Hubs 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>
Simular resposta
mock-response, como o nome indica, é usada para simular APIs e operações. Ela anula a execução normal do 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 exemplo com base em 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"/>
Tentar novamente
A política retry executa as políticas filho uma vez e tenta realizar a execução novamente até a condition da repetição se tornar false ou a count da repetição 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 ao chamador. A resposta padrão é 200 OK sem nenhum corpo. Uma resposta personalizada pode ser especificada por meio de declarações de política ou da 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 do Gerenciamento de API