Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Se você estiver testando a chamada de Java pela primeira vez, recomendamos que comece com Como criar um frase de destaque.
Este exemplo do manual demonstra como criar uma política Java callout simples que executa código Java personalizado no contexto de um fluxo de proxy.
O que o exemplo de código faz?
O proxy de API neste exemplo chama um serviço de destino que retorna uma resposta JSON simples. A A política Java Chamada é colocada no fluxo de resposta de destino. O código Java converte os cabeçalhos e o conteúdo da resposta para letras maiúsculas. É um exemplo simples; No entanto, ela ilustra como para que o código Java personalizado funcione no contexto de um proxy de API no Edge.
Testar o exemplo
Fazer o download do projeto
Para simplificar, faça o download deste projeto do repositório api-platform-samples da Apigee no GitHub.
- Faça o download ou clone api-platform-samples no seu sistema.
- Em um terminal ou editor de código de sua escolha, acesse o projeto
api-platform-samples/doc-samples/java-cookbook
.
Compilar o código com o Maven
O projeto é configurado para que você possa compilar com o Maven. Se você quiser usar
javac
, vamos incluir também um exemplo seguindo o exemplo do Maven.
- Verifique se o Maven está instalado:
mvn -version
- Execute o script a
java-cookbook/buildsetup.sh
. Esse script instala as dependências JAR necessárias no seu repositório Maven local. - cd para o diretório
java-cookbool/callout
. - Execute o Maven:
mvn clean package
- Se você quiser, verifique se o arquivo JAR
edge-custom-policy-java-cookbook.jar
foi copiado parajava-cookbook/apiproxy/resources/java
. Este é o local necessário para os arquivos JAR que você quer implantar com um proxy.
Compilar com javac
Se você quiser usar javac
para compilar o código, faça algo semelhante
ao seguinte (do diretório java-cookbook
). Os arquivos JAR necessários são fornecidos
a você no diretório java-cookbook/lib
.
- cd para
api-platform-samples/doc-samples/java-cookbook
. - Verifique se você tem javac no seu caminho.
javac -version
- Execute o seguinte comando javac:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
- Copie o arquivo JAR para o diretório apiproxy/resources/java. Esse é o local necessário
para os arquivos JAR que você quer implantar com um proxy.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
Implantar e chamar o proxy
Um script de implantação é fornecido no diretório ./java-cookbook
. Mas, antes de executar
você precisa fazer uma configuração rápida.
- cd para
api-platform-samples/doc-samples/java-cookbook
- Abra o arquivo
../../setup/setenv.sh
e edite-o, caso ainda não tenha feito isso. conforme indicado nas informações da conta da Apigee: seu nome de usuário (o endereço de e-mail associado à sua conta), o nome da organização e o domínio que você usa para criar de gerenciamento de projetos. Por exemplo, para nuvem de borda, o domínio éhttps://api.enterprise.apigee.com
No entanto, seu domínio poderá ser diferente se você estiver usando a nuvem privada do Edge. - Salve o arquivo
setenv.sh
. - Execute o script de implantação:
./deploy.sh
- Se a implantação for bem-sucedida, execute o script de invocação:
./invoke.sh
O script de invocação chama um comando cURL parecido com este:
curl http://$org-$env.$api_domain/java-cookbook/json
A resposta será semelhante a esta:
< HTTP/1.1 200 OK < Date: Tue, 09 May 2017 20:31:08 GMT < Content-Type: APPLICATION/JSON; CHARSET=UTF-8 < Content-Length: 68 < Connection: keep-alive < Access-Control-Allow-Origin: * < ETag: W/"44-RA5ERT/MMLIK54NVBWBSZG" < X-Powered-By: APIGEE < Server: Apigee Router < * Curl_http_done: called premature == 0 * Connection #0 to host willwitman-test.apigee.net left intact {"FIRSTNAME":"JOHN","LASTNAME":"DOE","CITY":"SAN JOSE","STATE":"CA"}
Fluxo de proxy
Esta é uma captura da ferramenta de rastreamento mostrando o fluxo do proxy:
Estrutura de proxy
Essa é a estrutura do proxy. Observe que ele inclui um arquivo JAR na
apiproxy/resources/java
. O JAR é obrigatório. Nós o fornecemos para a
mas se estiver fazendo trabalho personalizado, você terá que criá-lo por conta própria e copiá-lo neste
o local. Para orientações sobre como compilar e implantar uma frase de destaque Java, consulte Como criar um
frase de destaque.
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
Sobre o código Java
A política Java Chamada executa o seguinte código Java, que converte os cabeçalhos de resposta e o o corpo da resposta a letras maiúsculas. O programa usa pacotes específicos da Apigee. Esses pacotes fornecem objetos e métodos que você pode usar para interagir diretamente com o fluxo de proxy. Métodos permitem que você obtenha e defina variáveis de fluxo, cabeçalhos, conteúdo de mensagens e muito mais.
package com.apigeesample; import com.apigee.flow.execution.ExecutionContext; import com.apigee.flow.execution.ExecutionResult; import com.apigee.flow.execution.spi.Execution; import com.apigee.flow.message.MessageContext; import java.util.Set; public class ResponseUppercase implements Execution{ public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { Set headers = messageContext.getMessage().getHeaderNames(); for (String header : headers) { String h = messageContext.getMessage().getHeader(header).toUpperCase(); messageContext.getMessage().setHeader(header, h); } String content = messageContext.getMessage().getContent(); messageContext.getMessage().setContent(content.toUpperCase()); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
Examinar o proxy de amostra
Deixe que você abra o proxy e examine os arquivos. Esta é a política de chamadas de Java. Observe como ela faz referência à classe que a chamada executa e ao arquivo JAR. Todas as frases de destaque em Java políticas seguem esse padrão. Consulte também a política de chamadas do Java.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>