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 nas mensagens Assign e Raise Fault
Com essa melhoria, não são necessárias soluções alternativas para garantir a formatação adequada das mensagens JSON, e as variáveis podem ser especificadas usando chaves sem criar um JSON inválido. Por exemplo, o comando 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 como está. 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 Assign Message e da política Raise Fault. (APIRT-1160)
Melhorias na política XML para JSON
A política XML para JSON foi aprimorada com os seguintes recursos. Você pode 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.
- Remova ou elimine níveis da hierarquia do documento XML no documento JSON final.
Para mais informações, consulte Política XML para JSON. (APIRT-1144)
Vários caracteres curinga em caminhos de recursos de produtos de API
Ao definir caminhos de recursos no produto de API, é possível incluir caracteres curinga em vários lugares de 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 esse lançamento, 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 e SHA512.
O objeto crypto também permite receber a data em vários formatos. Para mais informações, consulte Modelo de objeto JavaScript.
(APIRT-2886)
Verificação da versão do JAR de destaque de Java
Ao fazer upload de um recurso JAR Java para um proxy de API, um código de status HTTP 400 será retornado (em vez de 500) se a versão do recurso Java for incompatível com a versão do Java compatível com o Edge, listada em Software 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ê 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, e não 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 do Cloud privado que têm proxies de API que levam
mais tempo para serem executados. Por exemplo, digamos que você precise de proxies específicos para expirar em 3 minutos. Você pode usar uma nova propriedade api.timeout na configuração de um proxy de API. Veja como fazer isso com o exemplo de 3 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 comando a seguir define um proxy de API que expira depois de 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 ele 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)
Política de TLS/SSL para geração de registros 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 faria em um
TargetEndpoint de proxy. No entanto, o TLS/SSL de registro de mensagens só é compatível com o 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 tempo de execução não falham durante a exclusão do truststore associado ou quando o certificado válido no truststore é 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 de "+" 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 | Não é possível listar entradas em um cofre que tenha valor nulo em uma das entradas para organizações (CPS e não CPS) |
| MGMT-3226 | As consultas no nível da organização/ambiente não devem extrair todos os dados, o que causa 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 superior a 16 MB. Essa correção resolve o problema. |
| AXAPP-2429 | A API Analytics usando response_status_code retorna um erro de acesso a dados |
| AXAPP-2386 | Corrigir conteúdo de relatórios vazios nos relatórios diários por e-mail do Analytics |
| AXAPP-2347 | Não estou recebendo e-mails diários com o resumo das análises |
| APIRT-3141 | As chamadas em Java falham ao chamar new ExecutionResult() , porque o construtor foi definido como particular |
| APIRT-3140 | A política ServiceCallout não está funcionando 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 uso da CPU e parou de veicular tráfego |
| APIRT-3016 | Erros de "Tempo limite da chamada excedido" 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 cabeçalho Content-Type compatível com FHIR 'application/json+fhir' |
| APIRT-2946 | A política OAuthV2-RefreshToken não oculta atributos mesmo quando a exibição está definida como false |
| APIRT-2908 | É necessário aplicar o TLS 1.2 para chamadas de API internas após a atualização do TLS 1.2 no virtualhost |
| APIRT-2901 | As respostas compactadas com Gzip 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 rastreamento |
| APIRT-2825 | Erro gramatical na resposta de erro do token de acesso |
| APIRT-2750 | Muitas falhas de tráfego 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 do OAuthV2 retorna um cabeçalho WWW-Authenticate malformado |
| APIRT-2491 | Falha na atualização do TargetServer devido ao tempo limite de RPC entre o gerenciamento e mps |
| APIRT-2386 | Um escopo de string vazia é criado em um produto de API com um campo "Escopos OAuth permitidos" vazio |
| APIRT-2383 | As políticas de transformação XSL não parecem registrar dados quando ocorre um erro |
| APIRT-2364 | Variáveis de fluxo de falha do OAuth não são atualizadas em caso de erro |
| APIRT-2216 | Eventos enviados pelo servidor: fluxo de eventos com problemas em produção |
| APIRT-2079 | A chamada cURL de DEBUG 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 do 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) |