Criar políticas avançadas
Esta unidade fornece uma referência para as seguintes políticas de gerenciamento de API:
- Fluxo de controle - Aplica condicionalmente declarações de política com base nos resultados da avaliação de expressões booleanas.
- Encaminhar solicitação - Encaminha a solicitação para o serviço de back-end.
- Limitar simultaneidade - Impede que as políticas anexadas sejam executadas por mais do que o número especificado de solicitações de cada vez.
- Log to Event Hub - Envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger.
- Resposta simulada - Aborta a execução do pipeline e retorna uma resposta simulada diretamente ao chamador.
- Repetir - Tenta novamente executar as instruções de política anexadas, se e até que a condição seja atendida. A execução se repete nos intervalos de tempo especificados e até a contagem de tentativas especificada.
Fluxo de controlo
A choose
política aplica declarações de política anexadas com base no resultado da avaliação de expressões booleanas, semelhante a uma construção if-then-else ou switch 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 <when/>
elemento. O <otherwise/>
elemento é opcional. As condições dos <when/>
elementos são avaliadas por ordem de aparecimento na política. As declarações de política incluídas no primeiro <when/>
elemento são aplicadas quando o atributo condition é true. As políticas incluídas no <otherwise/>
elemento , se presentes, serão aplicadas se todos os <when/>
atributos de condição do elemento forem false.
Encaminhar pedido
A forward-request
política 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 da API e pode ser alterada usando a política de serviço de back-end definida.
A remoção dessa política faz com que a solicitação não seja encaminhada para o 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 limit-concurrency
política impede que as políticas anexadas 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 429 Solicitações Demais .
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Iniciar sessão no Hub de Eventos
A log-to-eventhub
política envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger. Como o próprio nome indica, a política é usada para salvar informações de contexto de solicitação ou resposta selecionadas para análise on-line ou off-line.
<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 simulada
O mock-response
, como o nome indica, é usado para simular APIs e operações. Ele aborta a execução normal do pipeline e retorna uma resposta simulada ao chamador. A política tenta sempre devolver respostas da mais alta fidelidade. Prefere exemplos de conteúdo de resposta, sempre que disponíveis. Ele gera respostas de exemplo de esquemas, quando esquemas são fornecidos e exemplos não. Se exemplos ou esquemas não forem encontrados, as respostas sem conteúdo serão retornadas.
<mock-response status-code="code" content-type="media type"/>
Tentar novamente
A retry
política executa suas políticas filhas uma vez e, em seguida, tenta novamente sua execução até que a nova tentativa condition
se torne false
ou a nova tentativa count
se esgote.
<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>
Resposta de retorno
A return-response
política 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 uma variável de contexto ou instruções de política. 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íticas.
- Erro ao processar as políticas de Gestão de API