Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Java SDK yang dihasilkan oleh API Gateway untuk REST API
Di bagian ini, kami menguraikan langkah-langkah untuk menggunakan Java SDK yang dihasilkan oleh API Gateway untuk REST API, dengan menggunakan Simple Calculator API sebagai contoh. Sebelum melanjutkan, Anda harus menyelesaikan langkah-langkahnya. Hasilkan SDKs untuk REST APIs di API Gateway
Untuk menginstal dan menggunakan Java SDK yang dihasilkan oleh API Gateway
-
Ekstrak konten file.zip yang dihasilkan API Gateway yang Anda unduh sebelumnya.
-
Unduh dan instal Apache Maven
(harus versi 3.5 atau lebih baru). -
Unduh dan instal JDK 8
. -
Mengatur variabel
JAVA_HOME
lingkungan. -
Buka folder SDK yang tidak di-zip tempat file pom.xml berada. Folder ini secara
generated-code
default. Jalankan mvn install perintah untuk menginstal file artefak yang dikompilasi ke repositori Maven lokal Anda. Ini membuattarget
folder yang berisi pustaka SDK yang dikompilasi. -
Ketik perintah berikut di direktori kosong untuk membuat rintisan proyek klien untuk memanggil API menggunakan pustaka SDK yang diinstal.
mvn -B archetype:generate \ -DarchetypeGroupdId=org.apache.maven.archetypes \ -DgroupId=
examples.aws.apig.simpleCalc.sdk.app
\ -DartifactId=SimpleCalc-sdkClient
catatan
Pemisah
\
dalam perintah sebelumnya disertakan untuk keterbacaan. Seluruh perintah harus pada satu baris tanpa pemisah.Perintah ini menciptakan sebuah rintisan aplikasi. Aplikasi rintisan berisi
pom.xml
file dansrc
folder di bawah direktori root proyek (SimpleCalc-SdkClient
dalam perintah sebelumnya). Awalnya, ada dua file sumber:src/main/java/
dan{package-path}
/App.javasrc/test/java/
. Dalam contoh ini,{package-path}
/AppTest.java{package-path}
adalah.examples/aws/apig/simpleCalc/sdk/app
Jalur paket ini berasal dariDarchetypeGroupdId
nilai. Anda dapat menggunakanApp.java
file sebagai template untuk aplikasi klien Anda, dan Anda dapat menambahkan yang lain di folder yang sama jika diperlukan. Anda dapat menggunakanAppTest.java
file sebagai templat pengujian unit untuk aplikasi Anda, dan Anda dapat menambahkan file kode pengujian lainnya ke folder pengujian yang sama sesuai kebutuhan. -
Perbarui dependensi paket dalam
pom.xml
file yang dihasilkan menjadi berikut, gantiname
properti proyekgroupId
,, dan AndaartifactId
version
, jika perlu:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>examples.aws.apig.simpleCalc.sdk.app</groupId> <artifactId>SimpleCalc-sdkClient</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>SimpleCalc-sdkClient</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-core</artifactId> <version>1.11.94</version> </dependency> <dependency> <groupId>my-apig-api-examples</groupId> <artifactId>simple-calc-sdk</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
catatan
Ketika versi artefak dependen yang lebih baru tidak
aws-java-sdk-core
kompatibel dengan versi yang ditentukan di atas (1.11.94
), Anda harus memperbarui<version>
tag ke versi baru. -
Selanjutnya, kami menunjukkan cara memanggil API menggunakan SDK dengan memanggil
getABOp(GetABOpRequest req)
,getApiRoot(GetApiRootRequest req)
, danpostApiRoot(PostApiRootRequest req)
metode SDK. Metode ini sesuai denganGET /{a}/{b}/{op}
,GET /?a={x}&b={y}&op={operator}
, danPOST /
metode, dengan muatan permintaan{"a": x, "b": y, "op": "operator"}
API, masing-masing.Perbarui
App.java
file sebagai berikut:package examples.aws.apig.simpleCalc.sdk.app; import java.io.IOException; import com.amazonaws.opensdk.config.ConnectionConfiguration; import com.amazonaws.opensdk.config.TimeoutConfiguration; import examples.aws.apig.simpleCalc.sdk.*; import examples.aws.apig.simpleCalc.sdk.model.*; import examples.aws.apig.simpleCalc.sdk.SimpleCalcSdk.*; public class App { SimpleCalcSdk sdkClient; public App() { initSdk(); } // The configuration settings are for illustration purposes and may not be a recommended best practice. private void initSdk() { sdkClient = SimpleCalcSdk.builder() .connectionConfiguration( new ConnectionConfiguration() .maxConnections(100) .connectionMaxIdleMillis(1000)) .timeoutConfiguration( new TimeoutConfiguration() .httpRequestTimeout(3000) .totalExecutionTimeout(10000) .socketTimeout(2000)) .build(); } // Calling shutdown is not necessary unless you want to exert explicit control of this resource. public void shutdown() { sdkClient.shutdown(); } // GetABOpResult getABOp(GetABOpRequest getABOpRequest) public Output getResultWithPathParameters(String x, String y, String operator) { operator = operator.equals("+") ? "add" : operator; operator = operator.equals("/") ? "div" : operator; GetABOpResult abopResult = sdkClient.getABOp(new GetABOpRequest().a(x).b(y).op(operator)); return abopResult.getResult().getOutput(); } public Output getResultWithQueryParameters(String a, String b, String op) { GetApiRootResult rootResult = sdkClient.getApiRoot(new GetApiRootRequest().a(a).b(b).op(op)); return rootResult.getResult().getOutput(); } public Output getResultByPostInputBody(Double x, Double y, String o) { PostApiRootResult postResult = sdkClient.postApiRoot( new PostApiRootRequest().input(new Input().a(x).b(y).op(o))); return postResult.getResult().getOutput(); } public static void main( String[] args ) { System.out.println( "Simple calc" ); // to begin App calc = new App(); // call the SimpleCalc API Output res = calc.getResultWithPathParameters("1", "2", "-"); System.out.printf("GET /1/2/-: %s\n", res.getC()); // Use the type query parameter res = calc.getResultWithQueryParameters("1", "2", "+"); System.out.printf("GET /?a=1&b=2&op=+: %s\n", res.getC()); // Call POST with an Input body. res = calc.getResultByPostInputBody(1.0, 2.0, "*"); System.out.printf("PUT /\n\n{\"a\":1, \"b\":2,\"op\":\"*\"}\n %s\n", res.getC()); } }
Dalam contoh sebelumnya, pengaturan konfigurasi yang digunakan untuk membuat instance klien SDK adalah untuk tujuan ilustrasi dan belum tentu direkomendasikan praktik terbaik. Selain itu, menelepon
sdkClient.shutdown()
adalah opsional, terutama jika Anda memerlukan kontrol yang tepat kapan harus membebaskan sumber daya.
Kami telah menunjukkan pola penting untuk memanggil API menggunakan Java SDK. Anda dapat memperluas instruksi untuk memanggil metode API lainnya.