Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Java çağrısını ilk kez deniyorsanız, Java çağrısı oluşturma açıklama metni).
Bu tarif defteri örneği, proxy akışı bağlamındaki özel Java kodudur.
Örnek kod ne işe yarar?
Bu örnekteki API proxy'si, basit bir JSON yanıtı döndüren hedef hizmeti çağırır. İlgili içeriği oluşturmak için kullanılan Java Çağrı politikası hedef yanıt akışına yerleştirilir. Java kodu başlıkları dönüştürür ve büyük harfle yazılmış yanıtın içeriği. Basit bir örnek vereyim. ama bu şekilde projenin API proxy'si bağlamında çalışan özel Java kodu almak için Google Analytics 360'a gidin.
Örneği dene
Projeyi indirme
İşleri kolaylaştırmak için bu projeyi aşağıdaki Apigee api-platform-samples deposundan indirebilirsiniz: GitHub.
- api-platform-samples öğesini sisteminize indirin veya klonlayın.
- Tercih ettiğiniz bir terminalde veya kod düzenleyicide
api-platform-samples/doc-samples/java-cookbook
projesi.
Kodunuzu Maven ile derleyin
Proje, Maven ile derleyebileceğiniz şekilde ayarlanmıştır. Raporlarınızda
javac
, Maven örneğine ek olarak bir örnek de vereceğiz.
- Maven'in yüklü olduğundan emin olun:
mvn -version
. java-cookbook/buildsetup.sh
komut dosyasını yürütün. Bu komut dosyası yerel Maven deponuzda gerekli JAR bağımlılıklarını test edin.- cd'yi
java-cookbool/callout
dizinine ekleyin. - Maven'i yürütme:
mvn clean package
. - İsterseniz
edge-custom-policy-java-cookbook.jar
JAR dosyasının şuydu olduğunu doğrulayın:java-cookbook/apiproxy/resources/java
klasörüne kopyalandı. Bu, Proxy ile dağıtmak istediğiniz JAR dosyaları.
Javac ile derle
Kodu derlemek için javac
kullanmak isterseniz şuna benzer bir işlem yapabilirsiniz:
(java-cookbook
dizininden). Gerekli JAR dosyaları sağlanmış
sizin için java-cookbook/lib
dizininde bulabilirsiniz.
- cd'yi
api-platform-samples/doc-samples/java-cookbook
konumuna ekleyin. - Yolunuzda javac bulunduğundan emin olun.
javac -version
- Aşağıdaki javac komutunu yürütün:
.javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
- JAR dosyasını apiproxy/resources/java dizinine kopyalayın. Bu, gerekli konumdur
proxy ile dağıtmak istediğiniz JAR dosyaları içindir.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
Proxy'yi dağıtma ve çağırma
./java-cookbook
dizininde bir dağıtım komut dosyası sağlandı. Ama koşmadan önce
hızlı bir kurulum yapmanız gerekir.
- cd'den
api-platform-samples/doc-samples/java-cookbook
'ye - Henüz yapmadıysanız
../../setup/setenv.sh
dosyasını açın ve düzenleyin Apigee hesap bilgilerinizle birlikte belirtildiği gibi: kullanıcı adınız (e-posta adresi hesabınızla ilişkilendirilen), kuruluşunuzun adı ve API oluşturmak için kullandığınız alan adı yönetim çağrıları. Örneğin, Edge Cloud için alanhttps://api.enterprise.apigee.com
; ancak dilerseniz kullanarak giriş yapın. setenv.sh
dosyasını kaydedin.- Dağıtım komut dosyasını yürütün:
./deploy.sh
. - Dağıtım başarılı olursa çağrı komut dosyasını yürütün:
./invoke.sh
.Çağrı komut dosyası şuna benzer bir cURL komutu çağırır:
curl http://$org-$env.$api_domain/java-cookbook/json
Yanıt şuna benzer:
< 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"}
Proxy akışı
Bu, proxy akışını gösteren izleme aracının bir çekimidir:
Proxy yapısı
Bu, proxy'nin yapısıdır. JAR dosyası içerdiğini unutmayın.
apiproxy/resources/java
dizini. JAR gereklidir. Bu içeriği,
örneğidir, ancak özel çalışma yapıyorsanız bunu kendiniz oluşturmanız ve buraya kopyalamanız gerekir.
konum. Java çağrısını derleme ve dağıtmayla ilgili yardım için How to create a Java
açıklama metni).
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
Java kodu hakkında
Java Çağrı politikası, yanıt başlıklarını ve yanıt gövdesini büyük harfe çevirmeyin. Programın Apigee'ye özel paketleri kullandığını unutmayın. Bu paketler Proxy akışıyla doğrudan etkileşim kurmak için kullanabileceğiniz nesneler ve yöntemler sağlar. Yöntemler akış değişkenleri, başlıklar, ileti içerikleri ve daha fazlasını alıp ayarlamanıza olanak tanıyan araçlar yer alır.
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; } } }
Örnek proxy'yi inceleme
Proxy'yi açıp dosyaları incelemeniz size aittir. Java Çağrı Politikası'nı burada bulabilirsiniz. Açıklama metninin yürütüldüğü sınıfa ve JAR dosyasına nasıl referans verdiğine dikkat edin. Tüm Java Çağrıları politikaları da bu kalıbı izler. Ayrıca bkz. Java Çağrı Politikası.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>