Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X.info
Na terça-feira, 30 de agosto de 2016, lançamos uma nova versão do Apigee Edge para nuvem pública.
Novos recursos e atualizações
Veja a seguir os novos recursos e atualizações desta versão.
Payloads JSON em Atribuir mensagem e Gerar falha
Com esse aprimoramento, não são necessárias soluções alternativas para garantir a formatação adequada da mensagem JSON, e variáveis podem ser especificadas usando chaves sem criar um JSON inválido. Por exemplo, o código a seguir insere o valor de message.content na mensagem JSON:
<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>
Se você usou uma solução alternativa, seu código vai continuar funcionando no estado em que se encontra. Também é possível usar variablePrefix e variableSuffix em vez de chaves para indicar variáveis.
Consulte o elemento <Set><Payload> nos documentos de referência da política de Atribuir mensagem e Gerar falha. (APIRT-1160)
Aprimoramentos da política XML para JSON
A política XML para JSON foi aprimorada com os seguintes recursos. É possível configurar a política para:
- Tratar alguns elementos XML como matrizes durante a conversão, o que coloca os valores entre colchetes "[ ]" no documento JSON.
- Remover ou eliminar níveis da hierarquia de documentos XML no documento JSON final.
Para mais informações, consulte XML para JSON policy. (APIRT-1144)
Vários curingas em caminhos de recursos de produtos de API
Ao definir caminhos de recursos no produto de API, é possível incluir curingas em vários lugares em um
caminho de recurso. Por exemplo, /team/*/invoices/** permite chamadas de API com qualquer
valor após /team e qualquer caminho de recurso
após invoices/. Um URI permitido em uma chamada de API seria
proxyBasePath/team/finance/invoices/company/a.
Se, após essa versão, os caminhos de recursos do produto de API pararem de funcionar como esperado, defina
a seguinte propriedade na sua organização para reverter ao comportamento anterior: features.enableStandardWildCardMatchForAPIProductResources = true
(MGMT-3273)
Funções criptográficas em JavaScript
Um novo conjunto de funções JavaScript crypto de alta performance está disponível
para criar, receber e atualizar os seguintes objetos de hash: MD5, SHA-1, SHA256, SHA512.
O objeto criptográfico também permite receber a
data em vários formatos. Para mais informações, consulte o modelo de objeto JavaScript.
(APIRT-2886)
Verificação da versão do JAR de destaque de Java
Ao fazer o upload de um recurso JAR Java para um proxy de API, um código de status HTTP 400 é retornado (em vez de um 500) se a versão do recurso Java for incompatível com a versão do Java com suporte do Edge, listada em Software com suporte e versões compatíveis. (MGMT-3420)
Validação de recursos de proxy de API
Quando você tem arquivos de recursos de proxy de API (como JARs JavaScript ou Java) armazenados no escopo do ambiente ou da organização, a estrutura de validação não exige mais que você também inclua esses recursos no nível do proxy de API em um pacote de proxy para que a importação passe na validação. A validação de recursos agora ocorre no momento da implantação, não no momento da importação. (MGMT-1430)
Configurar o tempo limite para proxies de API individuais
É possível configurar proxies de API para expirar após um período especificado (com um status de tempo limite de gateway 504
). O principal caso de uso é para clientes da nuvem privada que têm proxies de API que levam
mais tempo para serem executados. Por exemplo, digamos que você precise que proxies específicos expirem em três minutos. É possível
usar uma nova api.timeout propriedade na configuração de um proxy de API. Veja como fazer isso com o exemplo de três minutos:
- Primeiro, configure o balanceador de carga, o roteador e o processador de mensagens para expirar após três minutos.
- Em seguida, configure os proxies relevantes para expirar em três minutos. Especifique o valor em
milissegundos. Exemplo:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - No entanto, aumentar os tempos limite do sistema pode causar problemas de desempenho, porque
todos os proxies sem uma configuração api.timeout usam os novos tempos limite maiores do balanceador de carga, roteador e
processador de mensagens. Assim, configure outros proxies de API que não exigem tempos limite mais longos
para usar tempos limite mais baixos. Por exemplo, o código a seguir define um proxy de API para expirar após um
minuto:
<Property name="api.timeout">60000</Property>
Os clientes do Cloud, que não podem modificar os tempos limite do Edge, também podem configurar um tempo limite do proxy de API, desde que o tempo limite seja menor que o tempo limite padrão do processador de mensagens do Edge de 57 segundos.
Não é possível preencher o valor com uma variável. Essa propriedade é abordada na Referência de propriedades do endpoint. (APIRT-1778)
TLS/SSL para a política de registro de mensagens
<KeyStore> e <TrustStore> podem ser definidos na
configuração SSLInfo na política de registro de mensagens,
permitindo TLS/SSL unidirecional e bidirecional com um serviço de registro. Você configura SSLInfo na política de registro de mensagens da mesma forma que você
faria em um TargetEndpoint de proxy
TargetEndpoint. No entanto, o TLS/SSL de registro de mensagens oferece suporte apenas ao protocolo TCP.
(APIRT-1858)
Bugs corrigidos
Os bugs a seguir foram corrigidos nesta versão. Esta lista é principalmente para usuários que verificam se os tíquetes de suporte foram corrigidos. Ela não foi projetada para fornecer informações detalhadas a todos os usuários.
| ID do problema | Descrição |
|---|---|
| SECENG-609 | As chamadas de ambiente de execução não falham durante a exclusão do keystore associado ou quando o certificado válido no keystore é excluído |
| MGMT-3404 | A visualização/recuperação de registros do Node.js e a implantação de proxies são muito lentas |
| MGMT-3400 | A chamada para a API de gerenciamento /userroles falha se o usuário que faz a chamada tiver um "+" sinal no nome |
| MGMT-3368 | java.lang.ArrayIndexOutOfBoundsException: 1, ao importar um pacote de proxy de API que contém o diretório resources/node/resources |
| MGMT-3364 | OAuthV2: verificação de redirect_uri |
| MGMT-3319 | As entradas de lista em um cofre que tem valor nulo em uma das entradas não funcionam para organizações (CPS e não CPS) |
| MGMT-3226 | A consulta no nível da organização/ambiente não deve extrair todos os dados, causando falha na API A versão 160302 tinha um bug em que a listagem de recursos no nível da organização/ambiente falhava se o tamanho cumulativo dos recursos fosse maior que 16 MB. Essa correção resolve o problema. |
| AXAPP-2429 | A API Analytics que usa response_status_code retorna erro de acesso aos dados |
| AXAPP-2386 | Corrigir o conteúdo de relatórios vazios em relatórios de e-mail diários do Analytics |
| AXAPP-2347 | Não estou recebendo e-mails de resumo diário do Analytics |
| APIRT-3141 | Os destaques de Java falham ao chamar new ExecutionResult() , porque o construtor foi tornado particular |
| APIRT-3140 | A política ServiceCallout não funciona em chamadas de API HEAD |
| APIRT-3131 | createdBy incorreto mostrado para um proxy de API ao usar a monetização com um provedor de autenticação externo |
| APIRT-3121 | A mudança feita no arquivo de recursos da organização não é 100% eficaz |
| APIRT-3117 | O MP atingiu 100% de utilização da CPU e parou de veicular tráfego |
| APIRT-3016 | Erros de "tempo limite de chamada" do roteador em implantações |
| APIRT-2975 | Falha no upload do pacote de certificados |
| APIRT-2955 | Não é possível mascarar determinados atributos de dados de resposta JSON para o cabeçalho Content-Type compatível com FHIR 'application/json+fhir' |
| APIRT-2946 | A política OAuthV2-RefreshToken não oculta atributos, mesmo que a exibição esteja definida como "false" |
| APIRT-2908 | É necessário aplicar o TLS1.2 para chamadas de API internas após a atualização do TLS1.2 no host virtual |
| APIRT-2901 | As respostas compactadas retornadas do cache são compactadas duas vezes |
| APIRT-2873 | Os MPs geram NullPointerException relacionados a VerifyAPIKey após a exclusão de produtos/desenvolvedores/proxies |
| APIRT-2871 | Políticas IOIntensive aparecendo duas vezes no Trace |
| APIRT-2825 | Erro gramatical na resposta de erro do token de acesso |
| APIRT-2750 | Falhas de tráfego altas em uma organização específica |
| APIRT-2685 | O tráfego não pode fluir com um erro desconhecido sendo gerado |
| APIRT-2647 | Erro"O fluxo de entrada subjacente retornou zero bytes" com nonprod/dev |
| APIRT-2630 | Problemas intermitentes ao tentar ler o valor do cache |
| APIRT-2620 | Pool de linhas de execução separado para algumas etapas de bloqueio |
| APIRT-2610 | java.lang.ClassCastException com a política de cache de resposta |
| APIRT-2608 | Erro de análise de cabeçalhos Last-Modified em políticas de cache de resposta |
| APIRT-2605 | As variáveis"organization" e "environment" não podem ser substituídas por políticas |
| APIRT-2566 | A política OAuthV2 retorna um cabeçalho WWW-Authenticate malformado |
| APIRT-2491 | A atualização do TargetServer falhou devido ao tempo limite de RPC entre o gerenciamento e os MPs |
| APIRT-2386 | Um escopo de string vazia é criado em um produto de API com escopos OAuth permitidos vazios |
| APIRT-2383 | As políticas de transformação XSL não parecem registrar nenhum dado em caso de erro |
| APIRT-2364 | As variáveis de fluxo de falha do OAuth não são atualizadas em caso de erro |
| APIRT-2216 | Eventos enviados pelo servidor: o fluxo de eventos está com problemas na produção |
| APIRT-2079 | A chamada cURL de depuração não para após o tempo limite expirar para a sessão criada |
| APIRT-1495 | A proteção contra ameaças XML não detecta o Content-Type fhir |
| APIRT-347 | A política XSL não é validada corretamente na importação (não atribui resultados a variáveis de saída conforme documentado) |