invoke

Use a política invoke para chamar uma API..

Suporte de gateway

Restrição: não é possível armazenar em cache uma solicitação que inclui o cabeçalho da solicitação de Autorização
Tabela 1. Tabela mostrando quais gateways suportam a política e a versão da política correspondente
Gateway Versão da política
DataPower® Gateway (v5 compatible) 1.0.0
DataPower API Gateway 2.0.0

2.1.0 (DataPower API Gateway Versão 10.0.1.1 ou posterior)

2.2.0 (DataPower API Gateway Versão 10.0.2.0 ou posterior)

2.3.0 ( DataPower API Gateway Versão 10.0.3.0 ou posterior)

Este tópico descreve como configurar a política em sua origem do OpenAPI ; para obter detalhes sobre como configurar a política na interface com o usuário do conjunto, consulte Chamar

Sobre

A política invoke tem o seguinte formato:
- invoke:
  version: version
  title: title
  description: description
  target-url: URL_of_target_API
  backend-type: how_payload_is_sent_to_backend
  tls-profile: TLS_profile_to_be_used
  verb: method_type
  timeout: timeout_value_in_seconds
  compression: is_data_to_be_compressed
  username: username_if_authentication_required
  password: password_if_authentication_required
  output: location_of_the_invoke_result
  cache-key: unique_identifier_of_the_document_cache_entry
  cache-response: cache_behavior
  cache-putpost-response: response_caching_behavior
  cache-ttl: cache_time_to_live
  inject-proxy-headers: are_proxy_headers_sent_to_target_url
  decode-request-params: are_request_parameters_decoded
  encode-plus-char: are_plus_characters_encoded
  keep-payload: is_payload_sent_on_delete
  use-http-10: are_transactions_restricted_to_http_1.0
  chunked-uploads: are_chunked_encoded_documents_sent_to_the_server
  persistent-connection: are_persistent_connections_enabled
  header-control:
        .
        .
        .
    headers_to_copy_to_target_url
        .
        .
        .
  parameter-control:
        .
        .
        .
    parameters_to_copy_to_target_url
        .
        .
        .
  follow-redirects: url_redirection_behavior
  stop-on-error: errors_that_stop_the_flow

Propriedades

A tabela a seguir descreve as propriedades da política invoke.
Tabela 2. Propriedades da política invoke
Propriedade Necessário Descrição Tipo de dados
version True O número de versão da política sequência
title Não Um título para a política. sequência
description Não Uma descrição da política. sequência
target-url True A URL da API de destino.
Nota:

Não anexe manualmente parâmetros de caminho ou de consulta ao campo target-url na política de invocação. Se esses parâmetros forem definidos na operação da API, o site API Connect os injetará no destino URL em tempo de execução.

Evite adicionar manualmente valores como $(request.search) ou segmentos de caminho, pois isso pode resultar em duplicação ou URLs malformados. Use a política parameter-control para gerenciar a inclusão de parâmetros de consulta.

sequência
DataPower API Gateway
onlybackend-type Não Especifique um dos valores a seguir para determinar como a carga útil é enviada para o back-end:
  • detect: detectar o tipo de mensagem e enviar a carga útil para o backend adequadamente.
  • xml: compactar a carga útil como XML e enviar. Se o tipo de mensagem não for XML, a operação falhará.
  • json: compactar a carga útil como JSON e enviar. Se o tipo de mensagem não for JSON, a operação falhará.
  • binary: empacotar a carga útil como binária e enviar, independentemente do tipo de mensagem.
  • graphql: compactar a carga útil como GraphQL e enviar. Se o tipo de mensagem não for GraphQL, a operação falhará.

O valor padrão é detect.

sequência
DataPower API Gateway
onlygraphql-send-type(versão de política 2.2.0 e posterior) Sim, se backend-type for configurado como graphql ou detecte verb for configurado como POST ou keep. Especifique um dos valores a seguir para determinar como a carga útil do GraphQL é enviada para o back-end:
  • detect: detectar o tipo de mensagem e enviar a carga útil para o back-end adequadamente.
  • graphql: compactar a carga útil como GraphQL e enviar. Se o tipo de mensagem não for GraphQL, a operação falhará.
  • json: compactar a carga útil como JSON e enviar. Se o tipo de mensagem não for GraphQL, a operação falhará.
Nota: graphql-send-type será suportado apenas se backend-type estiver configurado como graphql ou detecte verb estiver configurado como POST ou keep.
sequência
tls-profile Não Especifica um perfil TLS a ser usado para a transmissão segura de dados.
Nota: se desejar editar a API na visualização de origem, certifique-se de que o valor tls-profile siga este formato: name:version. Por exemplo, ele deve ser parecido com nameofmytlsclientprofile:1.0.0.
sequência
verb Não

O tipo de método de operação.

Valores válidos:
  • RECEBER
  • POSTAR
  • OP_VEND
  • EXCLUIR
  • CORREÇÃO
  • CABEÇALHO
  • OPÇÕES

O valor padrão é GET. No entanto, se a propriedade for omitida da origem, o método de HTTP da solicitação recebida será usado.

sequência
timeout Não O tempo de espera antes de um retorno de resposta do terminal (em segundos).

O valor padrão é 60.

número inteiro
DataPower API Gateway
onlyhttp-version (versão de política 2.1.0 e mais recente) True A versão HTTP que será usado durante a conexão com o servidor de back-end. Valores válidos:
  • HTTP/1.0
  • HTTP/1.1
  • HTTP/2
sequência
DataPower API Gateway
onlyhttp2-required (versão de política 2.1.0 e mais recente) Não Configure essa propriedade como true para requerer que o servidor selecione HTTP/2 durante uma conexão TLS, caso contrário, o DataPower API Gateway rejeitará a conexão e falhará a solicitação. Para uma conexão não TLS, é registrado um aviso de que o requisito não pode ser cumprido. Essa configuração se aplicará somente se http-version estiver configurado como HTTP/2. booleano
compression Não Especifica se os dados devem ser compactados utilizando compress antes de serem transferidos por upload. O valor padrão é false. booleano
username Não O nome de usuário a ser usado para autenticação básica HTTP. sequência
password Não A senha a ser usada para autenticação básica HTTP. sequência
output 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 referenciada em outras ações, como o mapa.
Nota: Se desejar que a resposta seja salva na mensagem, deixe a propriedade output em branco, não forneça o valor message.
sequência

cache-key

Não Especifica o identificador exclusivo da entrada de cache do documento. sequência
DataPower API Gateway
onlywebsocket-upgrade (versão de política 2.1.0 e mais recente) Não Defina essa propriedade como true 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 propriedade está disponível apenas para APIs do GraphQL.
  • A propriedade websocket-upgrade está 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 websocket-upgrade.
booleano

cache-response

Não O tipo de resposta de cache.
Valores válidos:
  • protocol: o comportamento do cache é definido pelos cabeçalhos Cache-Control na solicitação e na resposta.
  • no-cache: especifica que não há armazenamento em cache. No entanto, se o documento já estiver no cache, ele será recuperado do cache.
  • time-to-live: especifica que a resposta permanece no cache pelo tempo especificado.

O valor padrão é protocol.

sequência
cache-putpost-response Não Especifica se você deseja armazenar em cache a resposta das solicitações POST e PUT. O armazenamento em cache da resposta das solicitações POST e PUT pode reduzir o carregamento do servidor e a latência na resposta à solicitação do cliente.

O valor padrão é false.

booleano

cache-ttl

Não Especifica o período de tempo, em segundos, que a resposta permanece no cache. Aplica-se apenas se a propriedade cache-response estiver configurada como time-to-live. Insira um valor no intervalo de 5 a 31708800.

O valor padrão é 900.

Observação: Quando os usuários fazem login usando o caminho de login do Toolkit (um URL que inclui ?from=TOOLKIT), a chave de API gerada tem um tempo de vida fixo (TTL) de 5 minutos.
número inteiro
DataPower API Gateway
onlyinject-proxy-headers Não Quando configurado como true, a política invoke injeta os cabeçalhos X-Forwarded-For, X-Forwarded-To, X-Forwarded-Host e X-Forwarded-Proto na solicitação que é enviada para o ttarget-url.

O valor padrão é false.

booleano
DataPower API Gateway
onlydecode-request-params Não Quando configurado como true, quaisquer parâmetros de solicitação que são referenciados por uma definição de variável no target-url da política de chamada são decodificados por URL.

O valor padrão é false.

booleano
DataPower API Gateway
onlyencode-plus-char Não Quando configurado como true, todos os caracteres "+" nos valores de parâmetros de consulta do target-url são codificados como %2F.

O valor padrão é false.

booleano
DataPower API Gateway
onlykeep-payload Não Quando configurado como true, a política de chamada envia uma carga útil em um método HTTP DELETE.

O valor padrão é false.

booleano
DataPower API Gateway
onlyuse-http-10 (somente versão de política 2.0.0 ) Não Quando configurado como true, transações HTTP são restritas à versão 1.0.

O valor padrão é false.

booleano
DataPower API Gateway
onlychunked-uploads Não Se essa propriedade for configurada como true, 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-Length ou codificação em partes. Embora todos os servidores possam interpretar o Content-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-Length interfere na capacidade do DataPower Gateway de transmitir totalmente. Se você tiver que transmitir documentos completos para o servidor de destino, ative essa propriedade.

Quando estiver ativado, o servidor deve ser compatível com o RFC 2616. Ao contrário de todos os outros recursos HTTP 1.1 que podem ser negociados no tempo de execução, lembre-se de que o servidor de destino é compatível com o RFC 2616.

O valor padrão é true.

Observação: a codificação em pedaços não é compatível com o protocolo HTTP 1.0.
booleano
DataPower API Gateway
onlypersistent-connection (versão de política 2.3.0 e posterior) Não Defina essa propriedade como true para ativar as conexões persistentes HTTP, permitindo a reutilização da conexão.

O valor padrão é true.

booleano
Somente DataPower API Gateway
header-control:
  type
  values
Não Especifica os cabeçalhos em message.headers que você deseja copiar para a URL de destino.

Se a propriedade type for configurada como blocklist, a propriedade values listará os cabeçalhos que você não quer que sejam copiados. Se a propriedade values estiver vazia, todos os cabeçalhos serão copiados.

Se a propriedade type for configurada como allowlist, a propriedade values listará os cabeçalhos que você quer que sejam copiados.

Os itens que são listados na propriedade values estão no formato de expressão regular. Os valores não distinguem maiúsculas e minúsculas. O valor padrão da propriedade header-control é
header-control:
  type: blocklist
  values: []

Consulte exemplos de cabeçalho-controle

objeto
Somente DataPower API Gateway
parameter-control:
  type
  values
Não Especifica os parâmetros na solicitação recebida que você deseja que sejam copiados para a URL de destino.

Se a propriedade type for configurada como blocklist, a propriedade values listará os parâmetros que você não quer que sejam copiados.

Se a propriedade type for configurada como allowlist, a propriedade values listará os parâmetros que você quer que sejam copiados. Se a propriedade values estiver vazia, nenhum parâmetro será copiado.

Os itens que são listados na propriedade values estão no formato de expressão regular. Os valores não distinguem maiúsculas e minúsculas. O valor padrão da propriedade parameter-control é
parameter-control:
  type: allowlist
  values: []

Consulte exemplos de controle de parâmetro

objeto
DataPower API Gateway
onlyfollow-redirect Não Especifica o comportamento se o servidor back-end retornar o código de status HTTP 301 Moved Permanently . Se essa propriedade for configurada como true, a política invoke seguirá o redirecionamento de URL fazendo uma chamada adicional para a URL especificada no cabeçalho Location na resposta. Se a propriedade for configurada como false, invoke salvará o código de status 301 e a chamada de API será considerada completa.
Nota: A propriedade follow-redirect é suportada apenas pelo DataPower API Gateway. Se você estiver usando o DataPower Gateway (v5 compatible), o invoke sempre seguirá o redirecionamento URL; a proxy (não suportada pelo DataPower API Gateway) salva o código de status 301 e conclui a chamada de API sem seguir o redirecionamento URL.
booleano
stop-on-error Não Lista os erros que, se lançados durante a execução da política, farão com que o fluxo seja interrompido. Se houver um fluxo catch configurado para este erro, ele será acionado para manipular o erro lançado. Se um erro for lançado e não houver erros especificados para a configuração Parar no erro ou se o erro lançado não for um dos erros especificados, a execução da política terá permissão para ser concluída, e o fluxo de conjuntos continuará. sequência

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

Somente DataPower API Gatewayheader-control exemplos

# copy all headers to the target URL

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: blocklist
      values: []
# copy all headers except X-Client-ID and Content-Type

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: blocklist
      values:
        - ^X-Client-ID$
        - ^Content-Type$
# copy no headers

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: allowlist
      values: []
# copy only the Content-Type header

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: allowlist
      values:
        - ^Content-Type$

Somente DataPower API Gatewayparameter-control exemplos

# copy no request parameters to the target URL

- invoke:
    target-url: http://myhost/path?storeid=3
    parameter-control:
      type: allowlist
      values: []
# append the petid parameter to the target URL
# if the incoming request is http://apigw/org/sandbox/petstore/base?petid=100&display=detailed, 
# the target URL at runtime will be http://myhost/mypath?storeid=3&petid=100

- invoke:
    target-url: http://myhost/path?storeid=3
    parameter-control:
      type: allowlist
      values:
        - ^petid$
# The API definition includes a query parameter petid.
# Incoming request: https://apigw/org/sandbox/pets?petid=123
# API Connect will automatically forward petid to the target URL at runtime.

- invoke:
    target-url: https://myhost/pets
    parameter-control:
      type: allowlist
      values:
        - ^petid$