Propriedades da API

Propriedades são usadas pelo gateway para controlar o comportamento de determinadas políticas. Geralmente, você fornece propriedades, mas a política também pode fornecer configurações de propriedades.

No IBM® API Connect, é possível criar propriedades de API que consistem em valores específicos do Catálogo para eliminar a necessidade de modificações de código-fonte, Você pode então fazer referência a propriedades em qualquer lugar em sua definição de API.

Propriedades de API pré-fornecidas

As propriedades da API pré-fornecidas para várias políticas são mostradas nas tabelas.

Uma lista de propriedades de API relacionadas à chamada que controlam o comportamento da política invoke.
Tabela 1. Propriedades que controlam a política invoke
Propriedade Necessário Descrição Tipo de Dados
DataPower Gateway (Classic)
onlyx-ibm-gateway-decode-request-params Não Se configurado como um valor de true, quaisquer parâmetros de solicitação que forem referenciados por uma definição de variável em uma URL de destino de chamada serão decodificados por URL. O comportamento padrão é não decodificar nenhum parâmetro, enviando-os, portanto, para a URL de destino sem mudança. Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-suppress-clientid Não Quando configurado com um valor de true, ou não especificado, o cabeçalho de HTTP X-IBM-Client-Id (se especificado na solicitação de API) não é enviado para a URL de destino de chamada. Quando configurado com um valor de false, o cabeçalho de HTTP X-IBM-Client-Id não tem seu envio cancelado para a URL de destino de chamada.

Essa propriedade é suportada apenas pelo DataPower® Gateway (v5 compatible) Se você estiver usando o DataPower API Gateway , então, para atingir a mesma funcionalidade, inclua uma propriedade header-control na configuração de política invoke na definição OpenAPI para a sua API, como nos exemplos a seguir:

Suprima o cabeçalho X-Client-ID da seguinte forma:
- invoke:
    target-url: http://myhostname/mypath
    header-control:
        type: blacklist
        values:
            - ^X-Client-ID$
Suprima o parâmetro de consulta userId da seguinte forma:
- invoke:
    target-url: http://myhostname/mypath
    parameter-control:
        type: blacklist
        values:
            - ^userId$
Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-optimize-invoke Não Se configurado como false, evita a substituição da chamada passada em uma política de proxy. Qualquer valor diferente de false (sem distinção entre maiúsculas e minúsculas) resultará na possível substituição da última chamada em uma política pelo proxy quando a API for executada no gateway. Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-queryparam-encode-plus-char Não Quando configurado como um valor de true, todos os caracteres + nos valores de parâmetros de consulta da URL de destino das políticas Chamada e Proxy são codificados para %2F.

O valor padrão é false.

Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-api-enforce-response-limits Não Se configurado para o valor true, permite que o analisador JSON seja obrigatório na regra de resposta. Se o tamanho do corpo de resposta for maior que o limite do analisador JSON configurado no domínio DataPower , um código de status 500 será retornado.
Nota: A propriedade x-ibm-gateway-api-enforce-response-limits é suportada pelo DataPower Gateway (v5 compatible) , mas não pelo DataPower API Gateway. No entanto, se estiver usando o ' DataPower API Gateway, considere o uso de uma política Parse no assembly da API para impor esses limites.

Para obter informações sobre os diferentes tipos de gateway, consulte API Connect tipos de gateway.

Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-emulate-v4-soap-error Não IBM API Management Version 4.0 inicia um erro DataPower quando uma falha SOAP é retornada de um serviço da web. IBM API Connect fornece um mecanismo para capturar erros SOAP e não inicia um erro DataPower . Para compatibilidade com APIs desenvolvidas no IBM API Management Version 4.0, configure essa propriedade como true apenas no caso em que uma extensão de gateway está esperando para manipular um erro SOAP em uma regra de erro posterior.

O valor padrão é false.

Nota: Esta propriedade foi descontinuada em favor do x-ibm-gateway-invoke-emulate-v4-invoke-error...
Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-keep-payload Não Se configurado com um valor true, a política de chamada enviará uma carga útil em um método HTTP DELETE. Essa propriedade está disponível para uso com o IBM DataPower Gateway versão 7.7.1.1 e posterior.

O valor padrão é false.

Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-emulate-v4-invoke-error Não IBM API Management Version 4.0 inicia um erro DataPower quando um erro do servidor de backend é retornado, uma falha de SOAP retornada de um serviço da web ou um erro JSON ou XML (não SOAP) de um serviço de repouso.. IBM API Connect fornece um mecanismo para capturar erros SOAP e de operação e não inicia um erro DataPower quando eles ocorrem. Se não houver nenhuma política de captura configurada, uma mensagem de erro genérica será gerada. Para compatibilidade com APIs desenvolvidas no IBM API Management Version 4.0, configure essa propriedade como true apenas no caso em que uma extensão de gateway está esperando para manipular um erro do servidor de backend em uma regra de erro de pós-extensão de gateway ou se o cliente da API está esperando que o erro do servidor de backend seja retornado

O valor padrão é false.

Booleano
Uma lista de propriedades de API relacionadas a mapa que controlam o comportamento da política de mapa.
Tabela 2. Propriedades que controlam a política de mapa
Propriedade Necessário Descrição Tipo de Dados
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-array-first-element-value Não Em IBM API Management Version 4.0, se um valor de origem de mapeamento for de uma matriz, apenas o primeiro valor será de saída. No API Connect, o comportamento padrão é retornar uma matriz de todos os valores de elementos de matrizes Para manter a compatibilidade com IBM API Management Version 4.0, configure essa propriedade da API como true para retornar apenas o primeiro valor do elemento de matriz. Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-resolve-apic-variables Não Por padrão, qualquer variável API Connect localizada na configuração do mapa é resolvida. Por exemplo, $(request.headers.content-type) é resolvida para o cabeçalho do tipo de conteúdo da solicitação. Como a procura por variáveis em cada propriedade do mapa pode exigir muita CPU, você pode optar por não resolver variáveis configurando essa propriedade da API como false. Se essa propriedade não estiver configurada ou for configurada para qualquer outro valor, o comportamento existente para procurar essas variáveis continua. Observe que o uso de variável dentro de um fragmento JavaScript de valor de mapa não é mudado, desde que as variáveis que são referenciadas sejam provenientes de uma entrada de mapa configurada. Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-create-empty-array Não Essa propriedade controla como a política de mapa manipula a saída de uma matriz vazia; ela pode ter os seguintes valores:
  • all: gera todas as matrizes vazias, incluindo matrizes filhas vazias. Este será o valor padrão se a propriedade não estiver configurada ou possuir um valor inválido.
  • parent: gera somente o valor da matriz vazia da propriedade atual. Ações de mapa filhas dessa propriedade não são tentadas.
  • none: evitar que quaisquer valores de matriz de saída vazios sejam produzidos.
Sequência
DataPower Gateway (Classic)
onlyx-ibm-gateway-optimize-schema-definition Não Configure o valor dessa propriedade como true para fornecer uma melhoria de desempenho para a política de mapa quando uma definição de esquema muito complexo é referenciada por uma definição de saída de política; por exemplo, alguns esquemas muito complexos que são gerados importando um esquema WSDL muito complexo.

A política de mapa constrói um esquema a partir de uma definição de API quando uma definição referenciada é fornecida como o valor do esquema. Se o esquema não tiver referências que geram uma referência circular, a configuração dessa propriedade como true poderá fornecer um benefício de desempenho ao gerar o mesmo esquema que de outra forma teria sido gerado. No entanto, em casos em que o esquema é muito complexo, com muitas referências potencialmente circulares, o esquema gerado pode ser diferente porque a manipulação de esquema melhorado processa referências circulares de forma diferente. Nesses casos, portanto, é necessário examinar a saída resultante para determinar se o benefício do desempenho ganho não depende de uma mudança na saída da política de mapa.

O valor padrão dessa propriedade é false, mantendo o comportamento e o desempenho existentes.

Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-null-value Não Configure o valor desta propriedade de API como true para permitir que uma propriedade dos dados de entrada de uma política de mapa com o valor null seja mapeada para o documento de saída. Por padrão, uma propriedade de dados de entrada de uma política de mapa com um valor de null não é mapeada para o documento de saída. Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-resolve-xmlinput-datatypes Não Os elementos de entrada XML com dados numéricos ou booleanos não têm metadados para indicar se esses dados devem ser mapeados como um valor de sequência ou como o tipo de dados específico. Ao configurar o valor dessa propriedade como false, os elementos de entrada de XML serão sempre mapeados como uma sequência. Ao configurar o valor como true, os elementos de entrada XML numéricos ou booleanos serão mapeados como o tipo de dados correspondente a partir do esquema de entrada.

O valor padrão é false.

Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-xml-empty-element Não Esta propriedade controla como a política de mapa manipula elementos vazios de entrada XML e afeta a saída JSON quando o documento de entrada é XML; ele pode ter os valores a seguir:
  • string: o valor para um elemento XML vazio é considerado como uma sequência de caracteres vazia. Este será o valor padrão se a propriedade não estiver configurada ou possuir um valor inválido.
  • null: o valor para um elemento XML vazio é considerado como nulo. Não haverá um mapeamento desse elemento para uma propriedade de saída JSON, a menos que a propriedade de API x-ibm-gateway-map-null-value também seja especificada com um valor de true.
  • none: o elemento XML vazio é ignorado.
  • string-badgerfish: o valor para um elemento XML vazio é considerado como uma sequência de caracteres vazia. O valor da sequência vazia será colocado em uma propriedade JSON de valor badgerfish.
  • null-badgerfish: o valor para um elemento XML vazio é considerado como nulo. O valor nulo será colocado em uma propriedade JSON de valor badgerfish. Não haverá um mapeamento desse elemento para uma propriedade de saída JSON, a menos que a propriedade de API x-ibm-gateway-map-null-value também seja especificada com um valor de true.
Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-schema-definition-reference-limit Não Configure o valor dessa propriedade para um valor de número inteiro que especifica o número máximo permitido de iterações de uma definição de esquema circular.

O valor padrão é 1, o que significa que as definições de esquema circular não são seguidas. O valor máximo possível é 5. Se você especificar um valor maior que 5, um valor de 5 será assumido. Se você especificar um valor não numérico, um valor igual a 1 será assumido.

Sequência
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-emulate-v4-default-required-properties Não Configure essa propriedade como true para ter valores padrão gerados na saída para as propriedades necessárias que não estão mapeadas ou para as quais não há dados de entrada presentes, nos seguintes casos específicos:
  • Uma matriz consiste em objetos que contêm uma ou mais propriedades necessárias.
  • Um objeto que é opcional tem uma ou mais propriedades filhas necessárias.

Por padrão, essas propriedades necessárias não estão presentes na saída. Se você configurar a propriedade da API x-ibm-gateway-map-emulate-v4-default-required-properties como true, essas propriedades necessárias estarão presentes na saída. Se o esquema de saída definir uma propriedade default para a propriedade de saída, o valor padrão especificado será usado, caso contrário, será designado um valor padrão dependendo do tipo de dados, como a seguir:

  • Sequência: sequência vazia ("")
  • Número: 0
  • Booleano: false
  • Objeto: objeto vazio
  • Matriz: matriz vazia
Exemplo 1
Os dados de entrada têm a seguinte matriz de objetos:
[{“a”: “value1”}, {“a”: “value2", "b": “value3”}]

O esquema de saída define o objeto de saída como tendo duas propriedades, a e b, das quais b é necessária. A política de mapa define os seguintes mapeamentos:

  • input.array.a até output.array.a
  • input.array.b até output.array.b

Se a propriedade da API x-ibm-gateway-map-emulate-v4-default-required-properties estiver configurada como true e b não estiver mapeado ou não tiver nenhum dado de entrada presente, b será designado a um valor padrão de uma sequência vazia e a saída será a seguinte:

[{“a”: “value1", "b": ""}, {"a": "value2", "b": "value3"}]
Exemplo 2
O esquema de saída define a seguinte estrutura:
{"a" : {"b" : {"c" : "value1", "d" : "value2"} } }

A propriedade b é opcional, mas a propriedade d em b é necessária.

A política do mapa define um mapeamento para output.a.b.c.

Se a propriedade da API x-ibm-gateway-map-emulate-v4-default-required-properties estiver configurada como true e d não for mapeado, d será designado a um valor padrão de uma sequência vazia e a saída será a seguinte:

{"a" : {"b" : {"c" : "value1", "d" : ""} } }

Se a propriedade da API x-ibm-gateway-map-emulate-v4-default-required-properties não for especificada ou não tiver um valor igual a true, essas propriedades necessárias não serão criadas na saída com seus valores padrão.

Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-post-process-json-output Não Configure o valor dessa propriedade para true para ativar o pós-processamento da saída JSON mapeada. O pós-processamento da saída JSON usará o esquema de saída para garantir que os valores da propriedade sejam do mesmo tipo de dados que o definido no esquema. Ele também normalizará os valores de propriedade de saída que têm uma sintaxe JSON de Badgerfish devido ao mapeamento de objetos de uma entrada XML. Configure o valor para false para que não haja pós-processamento da saída JSON mapeada.

O valor padrão é false.

Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-emulate-v4-empty-json-object Não Se um mapeamento falhar porque a sua entrada não está presente e não houver um mapeamento padrão configurado, o comportamento padrão será não fazer nenhuma mudança no mapeamento de saída. Configure o valor dessa propriedade como true para criar um objeto vazio para o pai do mapeamento de destino, emulando o comportamento de IBM API Management Version 4.0..
Exemplo
A política do mapa define um mapeamento para output.a.b.c.
Se os dados de entrada estiverem presentes, a saída será como a seguir:
{
  "a": {
    "b": {
      "c": "inputvalue"
    }
  }
}
Se não houver dados de entrada e a propriedade de API x-ibm-gateway-map-emulate-v4-empty-json-object estiver configurada como true, a saída será como a seguir:
{
  "a": {
    "b": {
    }
  }
}
As propriedades a e b são criadas, mas o valor de b é um objeto vazio.

O valor padrão é false.

Booleano
Somente DataPower Gateway
(Clássico)Uma lista de propriedades da API relacionadas a proxy que controlam o comportamento da política de proxy.
Tabela 3. Propriedades que controlam a política de proxy
Propriedade Necessário Descrição Tipo de Dados
x-ibm-gateway-proxy-suppress-clientid Não Uma configuração false ativa a inserção do cabeçalho HTTP ID-X-IBM-Client (se ele estiver especificado na solicitação de API) ou o parâmetro de consulta client_id na URL da solicitação para a URL de destino do proxy. Se não for especificado ou se for configurado com um valor de true, suprime o envio desse parâmetro para a URL de destino do proxy.

Essa propriedade é suportada apenas pelo DataPower Gateway (v5 compatible) Se você estiver usando o DataPower API Gateway , então, para atingir a mesma funcionalidade, inclua uma propriedade header-control na configuração de política invoke na definição OpenAPI para a sua API, como nos exemplos a seguir:

Suprima o cabeçalho X-Client-ID da seguinte forma:
- proxy:
    target-url: http://myhostname/mypath
    header-control:
        type: blacklist
        values:
            - ^X-Client-ID$
Suprima o parâmetro de consulta userId da seguinte forma:
- proxy:
    target-url: http://myhostname/mypath
    parameter-control:
        type: blacklist
        values:
            - ^userId$
Booleano
x-ibm-gateway-optimize-invoke Não Se configurado como false, evita a substituição da chamada passada em uma política de proxy. Qualquer valor diferente de false (sem distinção entre maiúsculas e minúsculas) resultará na possível substituição da última chamada em uma política pelo proxy quando a API for executada no gateway. Booleano
x-ibm-gateway-queryparam-encode-plus-char Não Quando configurado como um valor de true, todos os caracteres + nos valores de parâmetros de consulta da URL de destino das políticas Chamada e Proxy são codificados para %2F.

O valor padrão é false.

Booleano
x-ibm-gateway-api-enforce-response-limits Não Se configurado para o valor true, permite que o analisador JSON seja obrigatório na regra de resposta. Se o tamanho do corpo de resposta for maior que o limite do analisador JSON configurado no domínio DataPower , um código de status 500 será retornado. Booleano
Uma lista de propriedades da API que controlam o comportamento da política de limite de taxa.
Tabela 4. Propriedades que controlam a política de limite de taxa
Propriedade Necessário Descrição Tipo de Dados
x-ibm-gateway-emulate-v4-plan-rate-limit Não Por padrão, no IBM API Connect Version 10, se você configurar um limite de taxa apenas para um Plano e não para as operações de API dentro do Plano, um limite de taxa único será configurado para a API como um todo, independentemente de qual operação na API for solicitada. Esse comportamento é diferente de IBM API Management Version 4.0 , em que o limite de taxa é configurado individualmente para cada operação na API. Para mudar o comportamento da Versão 10 para emular o comportamento da Versão 4.0, configure essa propriedade da API para um valor de true. Booleano
Uma lista de propriedades de API que controlam o comportamento de várias políticas.
Tabela 5. Propriedades que controlam várias políticas
Propriedade Necessário Descrição Tipo de Dados
DataPower Gateway (Classic)
onlyx-ibm-gateway-sourcecode-resolve-apic-variables Não Se configurado como true, as referências de variáveis API Connect serão resolvidas. Configure como false se desejar que a política ignore referências de variáveis API Connect .

O valor padrão é true.

Essa propriedade se aplica às políticas a seguir:
  • Mapa
  • GatewayScript
  • XSLT
  • if
  • switch
Nota: essa configuração de propriedade é substituída pela configuração de propriedade da API x-ibm-gateway-map-resolve-apic-variables para a política de Mapa
Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-api-json-parse-error-handling Não Se uma solicitação de API ou carga útil de resposta incluir conteúdo JSON válido que contém caracteres que não podem ser representados na sintaxe interna XML JSONX que é usada pelo DataPower Gateway, configure essa propriedade como escape-unicode para permitir que a carga útil seja aceita sem erros de análise.. Se essa propriedade não estiver configurada ou estiver configurada como qualquer outro valor, a carga útil será rejeitada como um JSON inválido.

Essa propriedade se aplica à carga útil de solicitação da API e à carga útil de resposta da API quando x-ibm-gateway-api-enforce-response-limits é ativado.

Sequência
DataPower Gateway (Classic)
onlyx-ibm-gateway-framework-preserve-escaped-reverse-solidus Não Por padrão, a sequência \\ em uma propriedade de política é convertida em um único caractere \. Configure esta propriedade para true para preservar a string \\. Booleano
DataPower Gateway (Classic)
onlyx-ibm-gateway-inspect-request-headers Não Faz uma inspeção dos cabeçalhos de HTTP na solicitação da API para verificar caracteres nos valores de cabeçalho que são caracteres XML ilegais; pode ter os valores a seguir:
  • default: não há inspeção para esses caracteres nos valores de cabeçalho. Se uma estiver presente, a solicitação da API falhará com um Erro de servidor interno HTTP 500.
  • sanitize: quaisquer caracteres XML ilegais em valores de cabeçalho são substituídos por um caractere ?. O processamento da API continuará. Qualquer API que tentar ler request.headers.<headername> verá o caractere ? no valor. No entanto, os cabeçalhos de protocolo originais que representam message.headers ainda terão o caractere original, que será enviado para um servidor de back-end de chamada ou de proxy.
  • bad-request: haverá uma inspeção para esses caracteres nos valores de cabeçalho. Se uma estiver presente, a solicitação da API falhará com um HTTP 400 Bad Request.

O valor padrão é default.

Booleano