Cara menggunakan properti dalam info Java

Anda melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Apa yang dimaksud dengan pemanggilan Java?

Jika Anda baru menggunakan pemanggilan Java, sebaiknya mulai dengan Cara membuat pemanggilan Java callout.

Menggunakan properti dalam pemanggilan Java

Properti memungkinkan Anda menentukan pasangan nama/nilai dalam kebijakan pemanggilan Java yang dapat Anda akses dari kode Java saat runtime. Anda harus menentukan nilai string literal untuk setiap properti; Anda tidak dapat mereferensikan variabel alur dalam elemen ini.

Mari kita lihat contoh pemanggilan Java sederhana yang menggunakan properti. Dalam contoh ini, kita membuat proxy yang menyertakan kebijakan pemanggilan Java. Kebijakan ini menggunakan elemen <Properties> untuk menentukan pasangan nama/nilai. Dalam kode Java, kita mengambil nilai dan menggunakannya untuk menetapkan header respons.

Mendownload project

Untuk mempermudah, Anda dapat mendownload project ini dari repositori api-platform-samples Apigee di GitHub.

  1. Download atau clone api-platform-samples ke sistem Anda.
  2. Di terminal atau editor kode pilihan Anda, buka project api-platform-samples/doc-samples/java-properties.

Kebijakan pemanggilan Java

Kebijakan ini menggunakan elemen <Properties>. Elemen ini memungkinkan Anda menentukan pasangan nama/nilai. Saat runtime, kode Java Anda dapat mengakses nilai properti yang ditentukan dalam kebijakan, seperti yang akan kita lihat sebentar lagi.

<JavaCallout name="java-callout">         
    <ClassName>com.apigeesample.JavaProperties</ClassName>         
    <ResourceURL>java://edge-custom-policy-java-properties.jar</ResourceURL>         
    <Properties>              
        <Property name="prop">WORLD!</Property>             
    </Properties> 
</JavaCallout>

Kode Java contoh

Kode Java untuk contoh ini menunjukkan cara mengambil properti yang ditentukan dalam kebijakan pemanggilan Java. Dalam project contoh, Anda dapat menemukan kode sumber di java-properties/callout/src/main/java/JavaProperties.java. Kita akan membahas langkah-langkah untuk mengompilasi dan men-deploy kode ini nanti dalam topik ini.

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.Map;

public class JavaProperties implements Execution {

	private Map <String,String> properties; // read-only

	public JavaProperties(Map <String,String> properties) {
	        this.properties = properties;
	}

	public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) {

		try {

		    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));

            return ExecutionResult.SUCCESS;

		} catch (Exception e) {
			return ExecutionResult.ABORT;
		}
	}
}

Mengompilasi kode dengan Maven

Project ini disiapkan agar Anda dapat mengompilasi dengan Maven. Jika Anda ingin menggunakan javac, kami juga akan menyertakan contoh.

  1. Pastikan Anda telah menginstal Maven:
    mvn -version
  2. Jalankan skrip java-properties/buildsetup.sh. Skrip ini menginstal dependensi JAR yang diperlukan di repo Maven lokal Anda.
  3. cd ke direktori java-properties/callout.
  4. Jalankan Maven:
    mvn clean package
  5. Jika mau, verifikasi bahwa file JAR edge-custom-policy-java-properties.jar telah disalin ke java-properties/apiproxy/resources/java. Ini adalah lokasi yang diperlukan untuk file JAR yang ingin Anda deploy dengan proxy.

Mengompilasi dengan javac (opsional)

Jika ingin menggunakan javac untuk mengompilasi kode, Anda dapat melakukan sesuatu yang mirip dengan berikut (dari direktori java-properties). File JAR yang diperlukan disediakan untuk Anda di direktori java-properties/lib.

  1. cd ke api-platform-samples/doc-samples/java-properties.
  2. Pastikan Anda memiliki javac di jalur Anda.

    javac -version
  3. Jalankan perintah javac berikut:

    javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
  4. Buat file JAR:

    jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
  5. Salin file JAR ke direktori apiproxy/resources/java. Ini adalah lokasi yang diperlukan untuk file JAR yang ingin Anda deploy dengan proxy.
    cp edge-custom-policy-java-properties.jar apiproxy/resources/java

Men-deploy dan memanggil proxy

Skrip deployment disediakan di direktori ./java-properties. Namun, sebelum Anda menjalankannya, Anda perlu melakukan penyiapan cepat.

  1. cd ke api-platform-samples/doc-samples/java-properties
  2. Jika belum melakukannya, buka file ../../setup/setenv.sh dan edit seperti yang ditunjukkan dengan informasi akun Apigee Anda: nama pengguna (alamat email yang terkait dengan akun Anda), nama organisasi, dan domain yang Anda gunakan untuk melakukan panggilan pengelolaan API. Misalnya, untuk cloud Edge, domainnya adalah https://api.enterprise.apigee.com; namun, domain Anda mungkin berbeda jika Anda menggunakan Edge Private Cloud.
  3. Simpan file setenv.sh.
  4. Jalankan skrip deployment:
    ./deploy.sh
  5. Jika deployment berhasil, jalankan skrip pemanggilan:
    ./invoke.sh

    Skrip pemanggilan memanggil perintah cURL yang terlihat seperti ini:

    curl  http://$org-$env.$api_domain/java-properties

    Proxy menampilkan header: X-PROPERTY-HELLO: WORLD!. Ingatlah bahwa dalam kebijakan, kita menambahkan pasangan nama/nilai properti "prop/WORLD!". Pemanggilan Java mengambil nilai "WORLD!" dan menetapkannya di header bernama X-PROPERTY-HELLO:

    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));