Cara menggunakan properti dalam info Java

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Apa yang dimaksud dengan info Java?

Jika Anda baru mengenal info Java, sebaiknya mulai dengan Cara membuat info Java.

Menggunakan properti dalam info Java

Dengan properti, Anda dapat menentukan pasangan nama/nilai dalam kebijakan info Java yang dapat diakses 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 pelajari contoh info Java sederhana yang menggunakan properti. Dalam contoh ini, kami membuat proxy dengan 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>

Contoh kode Java

Kode Java untuk contoh ini menunjukkan cara mengambil properti yang telah ditentukan dalam kebijakan info Java. Dalam project contoh, Anda dapat menemukan kode sumber di java-properties/callout/src/main/java/JavaProperties.java. Kami akan memandu langkah-langkah 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;
		}
	}
}

Kompilasi kode Anda dengan Maven

Project ini sudah disiapkan sehingga 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. {i>cd<i} ke direktori java-properties/callout.
  4. Jalankan Maven:
    mvn clean package
    
  5. Jika mau, pastikan bahwa file JAR edge-custom-policy-java-properties.jar 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 seperti berikut ini (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 deploy disediakan di direktori ./java-properties. Namun, sebelum menjalankannya, Anda perlu melakukan penyiapan cepat.

  1. cd ke api-platform-samples/doc-samples/java-properties
  2. Cara paling sederhana untuk menerapkan proxy adalah dengan memaketkannya dalam file zip dan mengupload paket proxy ke lingkungan di organisasi Apigee Anda. Lihat Membuat proxy API. Pastikan Anda menggunakan opsi Upload Proxy Bundle. Lihat juga Tips dan trik untuk mengupload proxy API dalam paket proxy di komunitas Apigee.
  3. Setelah proxy di-deploy, coba panggil proxy:
    curl  https://$HOSTNAME/java-properties
    

    Proxy akan menampilkan header: X-PROPERTY-HELLO: WORLD!. Ingat bahwa dalam kebijakan, kami menambahkan pasangan nama/nilai properti "prop/WORLD!". Info Java mengambil nilai "WORLD!" dan menetapkannya dalam header yang disebut X-PROPERTY-HELLO:

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