Menggunakan Java SDK yang dihasilkan oleh API Gateway untuk REST API - APIGerbang Amazon

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
  1. Ekstrak konten file.zip yang dihasilkan API Gateway yang Anda unduh sebelumnya.

  2. Unduh dan instal Apache Maven (harus versi 3.5 atau lebih baru).

  3. Unduh dan instal JDK 8.

  4. Mengatur variabel JAVA_HOME lingkungan.

  5. 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 membuat target folder yang berisi pustaka SDK yang dikompilasi.

  6. 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 dan src folder di bawah direktori root proyek (SimpleCalc-SdkClient dalam perintah sebelumnya). Awalnya, ada dua file sumber: src/main/java/{package-path}/App.java dansrc/test/java/{package-path}/AppTest.java. Dalam contoh ini, {package-path} adalah. examples/aws/apig/simpleCalc/sdk/app Jalur paket ini berasal dari DarchetypeGroupdId nilai. Anda dapat menggunakan App.java file sebagai template untuk aplikasi klien Anda, dan Anda dapat menambahkan yang lain di folder yang sama jika diperlukan. Anda dapat menggunakan AppTest.java file sebagai templat pengujian unit untuk aplikasi Anda, dan Anda dapat menambahkan file kode pengujian lainnya ke folder pengujian yang sama sesuai kebutuhan.

  7. Perbarui dependensi paket dalam pom.xml file yang dihasilkan menjadi berikut, ganti name properti proyekgroupId,, dan Anda artifactIdversion, 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.

  8. Selanjutnya, kami menunjukkan cara memanggil API menggunakan SDK dengan memanggilgetABOp(GetABOpRequest req),getApiRoot(GetApiRootRequest req), dan postApiRoot(PostApiRootRequest req) metode SDK. Metode ini sesuai denganGET /{a}/{b}/{op},GET /?a={x}&b={y}&op={operator}, dan POST / 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.