Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Java ek bilgisini ilk kez deniyorsanız Java açıklama metni nasıl oluşturulur? başlıklı makaleyle başlamanızı öneririz.
Bu tarif defteri örneği, proxy akışı bağlamında özel Java kodu yürüten basit bir JavaCall politikasının nasıl oluşturulacağını gösterir.
Örnek kod ne işe yarar?
Bu örnekteki API proxy'si, basit bir JSON yanıtı döndüren hedef hizmeti çağırır. Java Çağrı politikası, hedef yanıt akışına yerleştirilir. Java kodu, yanıtın üst bilgilerini ve içeriğini büyük harflere dönüştürür. Basit bir örnek olsa da bu videoda Edge'de API proxy'si bağlamında özel Java kodunun nasıl çalıştırılacağı gösterilmektedir.
Örneği deneyin
Projeyi indirme
İşleri kolaylaştırmak için bu projeyi GitHub'daki Apigee api-platform-samples deposundan indirebilirsiniz.
- api-platform-samples API'sini sisteminize indirin veya klonlayın.
- Seçtiğiniz bir terminal veya kod düzenleyicide
api-platform-samples/doc-samples/java-cookbook
projesine gidin.
Kodunuzu Maven ile derleyin
Proje, Maven ile derleyebileceğiniz şekilde ayarlanmıştır. javac
öğesini kullanmak istiyorsanız Maven örneğine ek olarak bir örnek de ekleyeceğiz.
- Maven'in yüklü olduğundan emin olun:
mvn -version
java-cookbook/buildsetup.sh
komut dosyasını çalıştırın. Bu komut dosyası, yerel Maven deponuza gerekli JAR bağımlılıklarını yükler.- cd'den
java-cookbool/callout
dizinine ekleyin. - Maven'i çalıştırın:
mvn clean package
- Dilerseniz
edge-custom-policy-java-cookbook.jar
JAR dosyasınınjava-cookbook/apiproxy/resources/java
konumuna kopyalandığını doğrulayın. Bu, proxy ile dağıtmak istediğiniz JAR dosyaları için gerekli konumdur.
Javac ile derleme
Kodu derlemek için javac
kullanmak istiyorsanız aşağıdakine benzer bir işlem yapabilirsiniz (java-cookbook
dizininden). Gerekli JAR dosyaları java-cookbook/lib
dizininde sağlanır.
- cd'den
api-platform-samples/doc-samples/java-cookbook
öğesine dokunun. - Yolunuzda javac uzantısı bulunduğundan emin olun.
javac -version
- Aşağıdaki javac komutunu çalıştırı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, proxy ile dağıtmak istediğiniz JAR dosyaları için gerekli konumdur.
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ğlanır. Ancak çalıştırmadan önce hızlı bir kurulum yapmanız gerekir.
- cd'den
api-platform-samples/doc-samples/java-cookbook
konumuna - Henüz yapmadıysanız
../../setup/setenv.sh
dosyasını açın ve Apigee hesap bilgilerinizle (kullanıcı adınız (hesabınızla ilişkili e-posta adresi), kuruluş adınız ve API yönetimi çağrıları yapmak için kullandığınız alan) belirtilen şekilde düzenleyin. Örneğin, Edge bulutu için alanhttps://api.enterprise.apigee.com
'dir. Ancak Edge Private Cloud kullanıyorsanız alanınız farklı olabilir. 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ğırma komut dosyasını çalıştırın:
./invoke.sh
Çağrı komut dosyası, aşağıdakine 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. Bu dosyanın, apiproxy/resources/java
dizininde bir JAR dosyası içerdiğini unutmayın. JAR zorunludur. Örnek için bunu sağlarız. Ancak özel çalışma yapıyorsanız şablonu kendiniz oluşturmanız ve bu konuma kopyalamanız gerekir. Java çağrısını derleme ve dağıtma hakkında yardım için Java çağrısı oluşturma bölümüne bakın.
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 dönüştüren aşağıdaki Java kodunu çalıştırır. Programın Apigee'ye özel paketleri kullandığını unutmayın. Bu paketler, doğrudan proxy akışıyla etkileşim kurmak için kullanabileceğiniz nesneler ve yöntemler sağlar. Akış değişkenlerini, üstbilgileri, ileti içeriğini ve daha fazlasını almanızı ve ayarlamanızı sağlayan yöntemler vardı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 inceleyin
Proxy'yi açmanız ve dosyaları incelemeniz için size bırakıyoruz. Java Çağrı Politikası'nı burada bulabilirsiniz. Bu URL'nin, açıklama metninin yürüttüğü sınıfa ve JAR dosyasına nasıl başvuruda bulunduğunu unutmayın. Tüm Java Açıklama Metni politikaları bu kalıbı izler. Java açıklama metni politikasını da inceleyin.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>