Configurando a política Chamar para DataPower API Gateway
Siga estas etapas para configurar a política de Chamada para DataPower® API Gateway na interface com o usuário do conjunto.
Sobre essa tarefa
Para obter detalhes sobre como configurar a política na sua fonte do ` OpenAPI `, consulte `invoke`.
Procedimento
- No painel de navegação, clique em
Desenvolver e, em seguida, selecione a guia APIs.A página Desenvolver é aberta.. - Clique no título da definição de API na qual deseja trabalhar.
- Selecione a guia Gateway , em seguida, clique em Políticas na área de janela de navegação.Para obter mais informações sobre como trabalhar com o editor de assemblies de uma API, consulte O editor de assemblies.
- Localize a política Chamar na paleta e arraste a política para sua tela.
- Especifique as seguintes propriedades.
Tabela 1. Invocar propriedades da política Rótulo da propriedade Obrigatório Descrição Tipo de dados Título True O título da política. O valor padrão é
invoke.sequência Descrição Não Uma descrição da política. sequência URL True Especifica uma URL para o serviço de destino. Para uma API SOAP, uma URL é incluída por padrão. Onde possível, o valor Chamar URL é pré-fornecido a partir de informações que são definidas no WSDL importado.
sequência Tipo de back-end Não Selecione uma das seguintes opções para determinar como a carga útil é enviada para o backend. - Detectar
- Detecte o tipo de mensagem e envie a carga útil para o backend adequadamente.
- XML
- Compacte a carga útil como XML e envie.. Se o tipo de mensagem não for XML, a operação falhará.
- JSON
- Compacte a carga útil como JSON e envie.. Se o tipo de mensagem não for JSON, a operação falhará.
- Binário
- Empacote a carga útil como binária e envie, independentemente do tipo de mensagem.
- GraphQL
- Empacote a carga útil como GraphQL e envie. Se o tipo de mensagem não for GraphQL, a operação falhará.
O valor padrão é Detectar.
sequência Tipo de envio GraphQL(política versão 2.2.0 e mais recente) Sim, se o tipo de back-end estiver definido como GraphQL ou Detect, e o método HTTP estiver definido como POST ou Keep Selecione um dos seguintes valores para determinar como a carga útil do GraphQL é enviada para o backend. - Detectar
- Detecte o tipo de mensagem e envie a carga útil para o backend adequadamente.
- GraphQL
- Empacote a carga útil como GraphQL e envie. Se o tipo de mensagem não for GraphQL, a operação falhará.
- JSON
- Compacte a carga útil como JSON e envie.. Se o tipo de mensagem não for GraphQL, a operação falhará.
Observação: o tipo de envio GraphQL é compatível somente se o tipo de backend estiver definido como GraphQL ou Detect, e HTTP Method estiver definido como POST ou Keep.sequência Perfil TLS Não Especifica um perfil TLS a ser usado para a transmissão segura de dados. sequência timeout True O tempo de espera antes de uma resposta do terminal (em segundos). O valor padrão é
60.número inteiro Seguir redirecionamentos Não Especifica o comportamento se o servidor back-end retornar o código de status HTTP 301 Moved Permanently. Se você marcar essa caixa de seleção, a políticainvokeseguirá o redirecionamento URL fazendo uma nova chamada para o URL especificado no cabeçalhoLocationna resposta. Se você desmarcar essa caixa de seleção, oinvokesalvará o código de status301e a chamada de API será considerada concluídaNota: A propriedadefollow-redirecté suportada apenas pelo DataPower API Gateway. Se você estiver usando o DataPower Gateway (v5 compatible), oinvokesempre segue o redirecionamento URL; aproxypolítica (não suportada pelo DataPower API Gateway) armazena o código301de status e conclui a chamada à API sem seguir o redirecionamento URL.booleano Nome de usuário Não O nome de usuário a ser usado para autenticação básica HTTP. sequência Senha Não A senha a ser usada para autenticação básica HTTP. sequência Método HTTP True O método de HTTP a ser usado para a Chamada. Os seguintes valores são válidos. - Manter
- GET
- POST
- PUT
- EXCLUIR
- PATCH
- CABEÇALHO
- OPÇÕES
GET. No entanto, se configurado paraKeepou se a propriedade for removida da origem, o método de HTTP da solicitação recebida será usado.sequência Versão HTTP (política da versão 2.1.0 e mais recente) True A versão HTTP que será usado durante a conexão com o servidor de back-end. Selecione um dos seguintes valores. - HTTP/1.0
- HTTP/1.1
- HTTP/2
sequência HTTP/2 necessário (política da versão 2.1.0 e mais recente) Não Marque esta caixa de seleção para exigir que o servidor selecione HTTP/2 durante uma conexão TLS. Caso contrário, o servidor DataPower API Gateway rejeitará a conexão e falhará na solicitação. Para uma conexão não TLS, é registrado um aviso informando que o requisito não pode ser aplicado. Esta configuração aplica-se apenas se a Versão HTTP estiver configurada como HTTP/2. booleano Compactação Não Marque esta caixa de seleção para ativar a compactação de Codificações de Conteúdo no upload A caixa de seleção é desmarcada por padrão
booleano Tipo de Cache
Não O tipo de cache determina se deve-se armazenar documentos em cache, respeitando ou substituindo as diretivas de Controle de Cache HTTP recebidas na resposta da URL de destino. Essa propriedade entra em vigor apenas quando uma resposta é recebida, caso contrário, a política sempre retornará a resposta não expirada que foi salva anteriormente no cache. Os valores válidos são:- Protocolo
- O comportamento do cache é determinado pelos cabeçalhos de Controle de Cache na resposta, de acordo com o RFC 7234.
Para otimizar o desempenho, se o gateway receber mais de uma solicitação para um recurso que não está no cache, mas que poderia ser armazenado em cache quando a resposta da URL de destino fosse recebida, o gateway enviará apenas uma solicitação para a URL de destino; as solicitações restantes não serão processadas até que a resposta da primeira solicitação tenha sido recebida e o comportamento do cache tenha sido determinado a partir dessa resposta. Se a resposta indicar que o armazenamento em cache é possível, o gateway responderá a todas as solicitações em espera com o recurso em cache. Se a resposta indicar que o armazenamento em cache não é possível, o gateway enviará todas as solicitações em espera para a URL de destino.
Use essa opção apenas se você espera que as respostas da URL de destino possam ser armazenadas em cache, o que deve melhorar o desempenho e limitar a demanda na URL de destino. Se, no entanto, a URL de destino não indicar que o gateway deve armazenar sua resposta em cache, o desempenho pode ser prejudicado quando comparado com a opção Nenhum Cache.
- Sem Cache
- Respostas da URL de destino não são armazenadas em cache no gateway, independentemente de quaisquer cabeçalhos de armazenamento em cache retornados. Nesse caso, cada solicitação do cliente é enviada para a URL de destino.
Use essa opção se você não deseja armazenar em cache nenhuma das respostas de backend no gateway, ou se for improvável que uma resposta da URL de destino permitirá o armazenamento em cache por meio das configurações de cabeçalho de Controle de Cache.
- Tempo de Vida
- Essa opção é semelhante à opção Protocolo, exceto que permite especificar a quantidade de tempo que você deseja que a resposta bem-sucedida da chamada ou do proxy permaneça no cache. Use essa opção apenas se você espera que as respostas da URL de destino possam ser armazenadas em cache.
O valor padrão é Protocolo.
sequência Tempo de Vida Não Especifica o período de tempo, em segundos, que a resposta permanece no cache. Aplica-se apenas se a propriedade Tipo de cache estiver configurada para Time to LiveInsira um valor no intervalo de 5 a 31708800.O valor padrão é
900.número inteiro Chave de cache Não Especifica o identificador exclusivo da entrada de cache do documento. Se omitido, a sequência URL inteira será usada como a chave. sequência Permitir upgrade do WebSocket (política da versão 2.1.0 e mais recente) Não Marque essa caixa de seleção para permitir que uma conexão HTTP ou HTTPS seja atualizada para o protocolo WebSocket se a solicitação recebida pelo manipulador correspondente HTTP ou HTTPS no DataPower API Gateway usar WebSocket (ws) ou WebSocket Secure (wss). Nota:- Esta configuração está disponível somente para APIs GraphQL.
- A configuração Permitir upgrade do WebSocket foi descontinuada. Para permitir solicitações de upgrade do WebSocket que possam gerenciar dados de processamento de API, defina uma política de upgrade do WebSocket do conjunto. Para obter mais informações, consulte Atualização do WebSocket.
booleano Injetar cabeçalhos de proxy Não Se você marcar essa caixa de seleção, a política invokeinjetará os cabeçalhosX-Forwarded-For,X-Forwarded-To,X-Forwarded-HosteX-Forwarded-Protona solicitação enviada ao destino URL.A caixa de seleção é desmarcada por padrão
booleano Decodificar parâmetros de solicitação Não Se você marcar essa caixa de seleção, todos os parâmetros de solicitação referenciados por uma definição de variável no destino URL da política de invocação serão URL -decodificados. A caixa de seleção é desmarcada por padrão
booleano Codificação de parâmetro de consulta Não Se você marcar essa caixa de seleção, todos os caracteres "+" nos valores do parâmetro de consulta do destino URL serão codificados para %2F. A caixa de seleção é desmarcada por padrão
booleano Manter carga útil Não Se você marcar essa caixa de seleção, a política de chamada enviará uma carga útil em um método HTTP DELETEA caixa de seleção é desmarcada por padrão
booleano Restringir a HTTP 1.0 (apenas política da versão 2.0.0) Não Se você marcar essa caixa de seleção, as transações HTTP serão restritas à versão 1.0. A caixa de opção é limpa por padrão.
booleano Permitir uploads em partes Não Se você marcar essa caixa de seleção, os documentos codificados em partes serão enviados para o servidor Quando o protocolo HTTP 1.1 é usado, o corpo do documento pode ser delimitado por Content-Lengthou codificação em partes. Embora todos os servidores possam interpretar oContent-Length, muitos aplicativos não entendem documentos codificados em partes. Por essa razão,Content-Lengthé o método padrão.O uso do
Content-Lengthinterfere na capacidade do DataPower Gateway de transmitir totalmente. Se você tiver que transmitir documentos completos para o servidor de destino, ative essa propriedade.Quando ativado, o servidor deve ser compatível com RFC 2616. Ao contrário de todos os outros recursos HTTP 1.1 que podem ser negociados no tempo de execução, deve-se saber antecipadamente que o servidor de destino é compatível com o RFC 2616.
A caixa de opções é selecionada por padrão.
Observação: a codificação em pedaços não é compatível com o protocolo HTTP 1.0.booleano Conexão Persistente (versão de política 2.3.0 e posterior) Não Marque essa caixa de seleção para ativar as conexões persistentes do HTTP, permitindo a reutilização da conexão. A caixa de seleção é marcada por padrão.
booleano Controle de cabeçalho Não Especifica os cabeçalhos em message.headersque você deseja copiar para a URL de destino.Para evitar que cabeçalhos sejam copiados, conclua as seguintes etapas.- Selecione Blocklist.
- Clique em Incluir lista de bloqueios
- No campo vazio que é exibido, insira o nome do cabeçalho.
- Para incluir mais cabeçalhos, repita as etapas anteriores.
Para especificar cabeçalhos que você deseja copiar, conclua as etapas a seguir.- Selecione Allowlist.
- Clique em Incluir lista de permissões..
- No campo vazio que é exibido, insira o nome do cabeçalho.
- Para incluir mais cabeçalhos, repita as etapas anteriores.
Os valores que você especifica estão no formato de expressão regular. Por exemplo, para especificar o cabeçalho Content-Type, insira
^Content-Type$Por padrão, Lista de bloqueios é selecionado sem entradas de lista de bloqueios, o que significa que todos os cabeçalhos são copiados.
sequência Controle de Parâmetro Não Especifica os parâmetros na solicitação recebida que você deseja que sejam copiados para a URL de destino. Para evitar que os parâmetros sejam copiados, conclua as etapas a seguir:- Selecione Blocklist.
- Clique em Incluir lista de bloqueios
- No campo vazio que é exibido, insira o nome do parâmetro.
- Para incluir mais parâmetros, repita as etapas anteriores.
Para especificar parâmetros que você deseja copiar, conclua as etapas a seguir.- Selecione Allowlist.
- Clique em Incluir lista de permissões..
- No campo vazio que é exibido, insira o nome do parâmetro.
- Para incluir mais parâmetros, repita as etapas anteriores.
Os valores que você especifica estão no formato de expressão regular.
Por exemplo, se a solicitação recebida for
e você especificar uma entrada de lista de desbloqueiohttp://apigw/org/sandbox/petstore/base?petid=100&display=detailed^petid$, a URL de destino no tempo de execução seráhttp://myhost/mypath?storeid=3&petid=100Por padrão, lista de permissões é selecionado sem entradas de lista de permissões, o que significa que nenhum parâmetro é copiado.
sequência Parar em caso de erro Não Selecione os erros que, se lançados durante a execução da política, farão o fluxo de conjuntos parar. Se houver um fluxo catchconfigurado para este erro, ele será acionado para manipular o erro lançado. Se um erro for lançado e não houver erros selecionados para a configuração Parar no erro ou se o erro lançado não for um dos erros selecionados, a execução da política terá permissão para ser concluída, e o fluxo de conjuntos continuará.sequência Variável do objeto de resposta
Não O nome de uma variável que será usada para armazenar os dados de resposta da solicitação. Por padrão, a resposta de chamada, ou seja, o corpo, os cabeçalhos, o statusCode e a statusMessage, é salva na variável message. Use essa propriedade para especificar um local alternativo para armazenar a resposta da chamada. Essa variável pode então ser utilizada em outras ações, como o Map. Nota: Se você desejar que a resposta seja salva em message, deixe a propriedade Response object variable em branco, não forneça o valor message.sequência Armazenamento em Buffer Não Selecione “Buffering” para definir se a carga útil deve ser armazenada em buffer. Se a opção “Buffering” estiver selecionada, a carga útil é armazenada em buffer, e a política de invocação pode verificar o tipo da carga útil. Se a opção “Buffering” não estiver selecionada, a carga útil é transmitida em fluxo contínuo, e a política de invocação não pode verificar o tipo da carga útil. Observação: Se você ativar o Buffering, também deverá configurar uma política de análise para interpretar a carga útil. Sem uma política de análise (Parse), a carga útil permanece como um buffer não interpretado, e a política de invocação (Invoke) é bem-sucedida se o serviço de back-end aceitar cargas úteis do tipobinaryoudetect. Se uma política de análise (Parse) estiver configurada, ela desativa implicitamente o streaming, mesmo que o buffer esteja desativado, pois a análise exige que toda a carga seja armazenada no buffer. Para mais informações, consulte o Parse.booleano - Especifique uma versão para a política clicando no ícone "Fonte
" e preenchendo a versionseção do YAML da política. Por exemplo:
Deve-se especificar uma versão para a política compatível com o gateway que você está usando. Quando a API for publicada, se a versão for incompatível com o gateway, será lançado um erro de validação que especifica as versões disponíveisexecute: - invoke: version: 2.0.0 title: invoke ... - Clique em Salvar.
Exemplo
- invoke:
version: 2.0.0
title: get the account status
target-url: https://example.com/accounts/{id}?status={status}
cache-response: time-to-live
cache-putpost-response: true
tls-profile: MyTLSProfile:1.0.0
verb: POST
timeout: 60
compression: false
username: MyUser
password: MyPassword
stop-on-error:
- ConnectionError
- OperationError