Esta página aplica-se ao Apigee e ao Apigee Hybrid.
  
    Veja a documentação do 
    Apigee Edge.
  
  
       
 
  
Este tópico descreve as propriedades de transporte que podem ser definidas nas configurações TargetEndpoint
  e ProxyEndpoint
  para controlar o comportamento das mensagens e das ligações. Para uma cobertura completa das opções de configuração TargetEndpoint
  e ProxyEndpoint, consulte a referência de configuração do proxy da API.
Propriedades de transporte do TargetEndpoint
O elemento HTTPTargetConnection nas configurações TargetEndpoint define um conjunto de propriedades de transporte HTTP. Pode usar estas propriedades para definir configurações ao nível do transporte.
As propriedades são definidas nos elementos TargetEndpoint HTTPTargetConnection, como mostrado nesta configuração de exemplo:
<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>Especificação da propriedade de transporte TargetEndpoint
| Nome da propriedade | Valor predefinido | Descrição | 
|---|---|---|
| allow.post.without.content.length | falso | Permite enviar pedidos POST sem conteúdo no corpo. | 
| allow.put.without.content.length | falso | Permite enviar pedidos PUT sem conteúdo no corpo. | 
| allow.tls.session.resumption | verdadeiro | Se os clientes true(predefinição) reutilizarem sessões TLS quando fizerem novas ligações ao destino.
        Defina comofalsese não quiser a reutilização da sessão TLS. Geralmente, a reutilização de sessões significa tempos de ligação mais curtos, mas alguns destinos podem não suportar a reutilização de sessões ou ter dificuldades com a mesma. | 
| keepalive.timeout.millis | 60000 | Limite de tempo de inatividade da ligação para a ligação de destino no conjunto de ligações. Se a ligação no conjunto estiver inativa para além do limite especificado, a ligação é fechada. | 
| connect.timeout.millis | 3000 | Limite de tempo da ligação de destino. O Apigee devolve um código de estado HTTP  | 
| ignore.allow.header.for.405 | verdadeiro | Permite-lhe transmitir o código de estado 405 de volta ao cliente. Se ativar a flag, o Apigee devolve 405 em vez do código de estado 502. | 
| io.timeout.millis | 55000 | Se não existirem dados para ler durante o número especificado de milissegundos ou se o soquete não estiver pronto para escrever dados durante um número especificado de milissegundos, a transação é tratada como um limite de tempo. 
 Consulte o artigo Definir io.timeout.millis e api.timeout. | 
| supports.http11 | verdadeiro | Se for truee o cliente enviar um pedido1.1, o destino também recebe um pedido1.1. Caso contrário, é enviado um pedido1.0para o destino. | 
| use.proxy | verdadeiro | 
            Se o ficheiro de substituições do Apigee hybrid contiver a configuração  
            Se estiver definido como  | 
| use.proxy.tunneling | verdadeiro | Se esta opção estiver definida como verdadeira e as configurações de proxy forem especificadas no ficheiro de substituição do Apigee hybrid conforme descrito em Configurar o encaminhamento de proxy para proxies de API, as ligações de destino são definidas para usar o túnel especificado. Se o destino usar TLS/SSL, esta propriedade é ignorada e a mensagem é sempre enviada através de um túnel. | 
| response.payload. | 10M | Por predefinição ( 10M). Use a propriedaderesponse.payload.parse.limitpara definir o tamanho máximo da carga útil que pode ser processada no fluxo de resposta, em megabytes (M). O limite configurável mínimo é de 10 milhões e o limite configurável máximo é de 30 milhões. Se a propriedade não estiver definida, o limite predefinido é de 10 milhões.Consulte também Tamanho do payload da mensagem. | 
| request.streaming.enabled | falso | Por predefinição ( | 
| response.streaming.enabled | falso | Por predefinição (falso), as cargas de resposta de HTTP são lidas num buffer e as políticas que podem operar na carga funcionam como esperado. Nos casos em que os payloads são maiores do que o tamanho do buffer (10 MB no Apigee), pode definir este atributo como verdadeiro. Quando é verdadeiro, as cargas de resposta de HTTP não são lidas num buffer; são
          transmitidas tal como estão para o fluxo de resposta  | 
| success.codes | N/A | Por predefinição, o Apigee trata o código HTTP  A definição desta propriedade substitui os valores predefinidos. Por conseguinte, se quiser adicionar o código HTTP  
 Se quiser que apenas o código HTTP  
 Ao definir o código HTTP  | 
| compression.algorithm | N/A | Por predefinição, o Apigee respeita o tipo de compressão definido (gzip, deflate ou nenhum) para as mensagens recebidas. Se o pedido for recebido do cliente através, por exemplo, da compressão gzip, o Apigee encaminha o pedido para o destino através da compressão gzip. Se
          a resposta recebida do destino usar deflate, o Apigee encaminha a resposta para
          o cliente usando deflate. Os valores suportados são: 
 Veja também: O Apigee suporta a compressão/descompressão com compressão GZIP/deflate? | 
| request.retain.headers. | verdadeiro | Por predefinição, o Apigee retém sempre todos os cabeçalhos HTTP nas mensagens de saída. Quando definida como true, todos os cabeçalhos HTTP presentes no pedido recebido são definidos no pedido enviado. | 
| request.retain.headers | N/A | Define cabeçalhos HTTP específicos do pedido que devem ser definidos no pedido de saída
        para o serviço de destino. Por exemplo, para transmitir o cabeçalho User-Agent, defina o valor derequest.retain.headerscomoUser-Agent.
        Vários cabeçalhos HTTP são especificados como uma lista separada por vírgulas, por exemplo:User-Agent,Referer,Accept-Language. Esta propriedade substituirequest.retain.headers.enabled. Serequest.retain.headers.enabledestiver definido comofalse, todos os cabeçalhos especificados na propriedaderequest.retain.headerscontinuam a ser definidos na mensagem de saída. | 
| response.retain.headers. | verdadeiro | Por predefinição, o Apigee retém sempre todos os cabeçalhos HTTP nas mensagens de saída. Quando definido
        como true, todos os cabeçalhos HTTP presentes na resposta de entrada do serviço
        de destino são definidos na resposta de saída antes de serem transmitidos aoProxyEndpoint. | 
| response.retain.headers | N/A | Define cabeçalhos HTTP específicos da resposta que devem ser definidos na resposta de saída antes de ser transmitida ao ProxyEndpoint. Por exemplo, para
        transmitir o cabeçalhoExpires, defina o valor deresponse.retain.headerscomoExpires. São especificados vários cabeçalhos HTTP como uma lista separada por vírgulas, por exemplo,Expires,Set-Cookie. Esta propriedade substituiresponse.retain.headers.enabled. Seresponse.retain.headers.enabledestiver definido comofalse, todos os cabeçalhos
        especificados na propriedaderesponse.retain.headerscontinuam a ser definidos na
        mensagem de saída. | 
| retain.queryparams. | verdadeiro | Por predefinição, o Apigee retém sempre todos os parâmetros de consulta em pedidos de saída. Quando
        definido como true, todos os parâmetros de consulta presentes no pedido recebido são definidos no
        pedido enviado para o serviço de destino. | 
| retain.queryparams | N/A | Define parâmetros de consulta específicos a definir no pedido de saída. Por exemplo, para
        incluir o parâmetro de consulta apikeyna mensagem de pedido, definaretain.queryparamscomoapikey. Vários parâmetros de consulta são especificados como uma lista separada por vírgulas, por exemplo,apikey,environment. Esta propriedade
        substituiretain.queryparams.enabled. | 
Propriedades de transporte do ProxyEndpoint
Os elementos ProxyEndpoint HTTPTargetConnection definem um conjunto de propriedades de transporte HTTP. Estas propriedades podem ser usadas para definir configurações ao nível do transporte.
As propriedades são definidas nos elementos ProxyEndpoint HTTPProxyConnection, conforme mostrado nesta configuração de exemplo:
<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>
Cabeçalhos do pedido
  Um pedido HTTP de entrada inclui os cabeçalhos HTTP enviados pelo cliente.
  Os cabeçalhos com nomes que correspondem ao padrão X-Apigee-* são removidos dos pedidos
  recebidos se um cliente os enviar. Este padrão de nome está reservado para o Apigee.
Especificação da propriedade de transporte ProxyEndpoint
| Nome da propriedade | Valor predefinido | Descrição | 
|---|---|---|
| X-Forwarded-For | falso | Quando está definida como verdadeira, o endereço IP do anfitrião virtual é adicionado ao pedido de saída como o valor do cabeçalho HTTP X-Forwarded-For. | 
| request.streaming. | false | Por predefinição ( false), as cargas úteis dos pedidos HTTP são lidas num buffer e as políticas que podem operar na carga útil funcionam conforme esperado. Nos casos em que os payloads são maiores do que o tamanho do buffer (10 MB no Apigee), pode definir este atributo comotrue. Quandotrue, as cargas de pedidos HTTP não são lidas
        num buffer. São
        transmitidas tal como estão para o fluxo de pedidosTargetEndpoint. Neste caso, todas as políticas
        que operam
        na carga útil no fluxo de pedidosProxyEndpointsão ignoradas. Veja também
        Pedidos e
        respostas de streaming. | 
| request.payload. | 10M | Por predefinição ( 10M). Use a propriedaderequest.payload.parse.limitpara definir o tamanho máximo do payload que pode ser processado no fluxo de pedidos, em megabytes (M). O limite configurável mínimo é de 10 milhões e o limite configurável máximo é de 30 milhões. Se a propriedade não estiver definida, o limite predefinido é de 10 milhões.Consulte também Tamanho do payload da mensagem. | 
| response.streaming. | false | Por predefinição (falso), as cargas de resposta de HTTP são lidas num buffer e as políticas que podem operar na carga funcionam como esperado. Nos casos em que os payloads são maiores do que o tamanho do buffer (10 MB no Apigee), pode definir este atributo como true. Quandotrue, as cargas de resposta de HTTP não são lidas
        num buffer; são
        transmitidas tal como estão para o cliente. Neste caso, todas as políticas que operam na carga útil no fluxo de respostaProxyEndpointsão ignoradas. Veja também
        Pedidos e
        respostas de streaming. | 
| compression.algorithm | N/A | Por predefinição, o Apigee respeita o tipo de compressão definido (gzip, deflate ou nenhum) para as mensagens recebidas. Por exemplo, quando um cliente envia um pedido que usa a compressão gzip, o Apigee encaminha o pedido para o destino usando a compressão gzip. Pode configurar algoritmos de compressão
          para serem aplicados explicitamente definindo esta propriedade no
           
 Veja também: O Apigee suporta a compressão/descompressão com compressão GZIP/deflate? | 
| api.timeout | N/A | Configure o limite de tempo para proxies de API individuais (em milissegundos) Pode configurar proxies de API, mesmo aqueles com o streaming ativado, para expirar após um período especificado com um estado  
            Por exemplo, para configurar um proxy para expirar após 180 000 milissegundos (três minutos),
            adicione a seguinte propriedade a  <Property name="api.timeout">180000</Property> Não pode definir esta propriedade com uma variável. Consulte o artigo Definir io.timeout.millis e api.timeout. | 
| HTTPHeader.allowDuplicates | N/A | Use esta definição para permitir cabeçalhos duplicados (para cabeçalhos específicos). <HTTPProxyConnection>
  <Properties>
     <Property name="HTTPHeader.allowDuplicates">Content-Type,Authorization</Property>
  </Properties>
</HTTPProxyConnection> | 
| HTTPHeader.multiValued | N/A | Use esta definição para permitir cabeçalhos duplicados (para cabeçalhos específicos). <HTTPProxyConnection>
  <Properties>
    <Property name="HTTPHeader.multiValued">Content-Type,Authorization</Property>
  </Properties>
</HTTPProxyConnection> | 
Definir io.timeout.millis e api.timeout
O funcionamento de io.timeout.millis e api.timeout
  estão relacionados. Em cada pedido a um proxy de API:
  
- O Ingress (também conhecido como equilibrador de carga interno) envia o respetivo valor de tempo limite para o processador de mensagens. Este valor de tempo limite tem como predefinição 300 segundos e não é configurável.
- Em seguida, o processador de mensagens define api.timeout:- Se api.timeoutnão estiver definido ao nível do proxy, use o tempo limite definido pelo Ingress.
- Se api.timeoutestiver definido ao nível do proxy, defina-o no processador de mensagens para o menor do limite de tempo de entrada ou o valor deapi.timeout.
 
- Se 
- 
      O valor de api.timeoutespecifica o tempo máximo que um proxy de API tem para executar desde o pedido API até à resposta.Após a execução de cada política no proxy da API, ou antes de o processador de mensagens enviar o pedido para o ponto final de destino, o processador de mensagens calcula ( api.timeout- tempo decorrido desde o início do pedido).Se o valor for inferior a zero, significa que o tempo máximo para processar o pedido expirou e o processador de mensagens devolve um 504 Gateway Timeout.
- 
      O valor de io.timeout.millisespecifica o tempo máximo que o ponto final de destino tem para responder.Antes de estabelecer ligação a um ponto final de destino, o processador de mensagens determina o menor valor entre ( api.timeout– tempo decorrido desde o início do pedido) eio.timeout.millis. Em seguida, defineio.timeout.millispara esse valor.Se ocorrer um limite de tempo ao escrever o pedido HTTP ou ler a resposta HTTP, é devolvido 504 Gateway Timeout.