쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

API Gateway에서 생성한 REST API용 Java SDK 사용

포커스 모드
API Gateway에서 생성한 REST API용 Java SDK 사용 - Amazon API Gateway

이 단원에서는 API Gateway에서 생성된 REST API용 Java SDK를 사용하는 단계를 간편 계산기 API를 예로 들어 설명합니다. 계속하려면 먼저 API Gateway에서 REST API SDK 생성의 단계를 완료해야 합니다.

API Gateway가 생성한 Java SDK를 설치하고 사용하려면
  1. 앞서 다운로드한 API Gateway가 생성한 .zip 파일의 압축을 풉니다.

  2. Apache Maven(버전 3.5 이상)을 다운로드하여 설치합니다.

  3. JDK 8을 다운로드하여 설치합니다.

  4. JAVA_HOME 환경 변수를 설정합니다.

  5. pom.xml 파일이 있는, 압축을 해제한 SDK 폴더로 이동합니다. 기본적으로 이 폴더는 generated-code입니다. mvn install 명령을 실행해 컴파일된 아티팩트 파일을 로컬 Maven 리포지토리에 설치합니다. 그러면 컴파일된 SDK 라이브러리를 포함하는 target 폴더가 생성됩니다.

  6. 빈 디렉터리에 다음 명령을 입력해 클라이언트 프로젝트 스텁을 생성하여 설치된 SDK 라이브러리를 사용해 API를 호출합니다.

    mvn -B archetype:generate \ -DarchetypeGroupdId=org.apache.maven.archetypes \ -DgroupId=examples.aws.apig.simpleCalc.sdk.app \ -DartifactId=SimpleCalc-sdkClient
    참고

    앞의 명령에서 가독성을 높이기 위해 \ 구분자가 포함됩니다. 전체 명령은 구분자 없이 한 줄로 표시되어야 합니다.

    이 명령은 애플리케이션 스텁을 생성합니다. 이 애플리케이션 스텁은 프로젝트의 루트 디렉터리에 pom.xml 파일과 src 폴더를 포함합니다(앞의 명령에서 SimpleCalc-sdkClient). 처음에는 두 개의 소스 파일, src/main/java/{package-path}/App.javasrc/test/java/{package-path}/AppTest.java가 있습니다. 이 예제에서 {package-path}examples/aws/apig/simpleCalc/sdk/app입니다. 이 패키지 경로는 DarchetypeGroupdId 값에서 파생됩니다. 클라이언트 애플리케이션에 App.java 파일을 템플릿으로 사용하고, 필요에 따라 같은 폴더에 다른 템플릿을 추가할 수 있습니다. 애플리케이션에 AppTest.java 파일을 단위 테스트 템플릿으로 사용하고, 필요에 따라 같은 테스트 폴더에 다른 테스트 코드 파일을 추가할 수 있습니다.

  7. 생성된 pom.xml 파일의 패키지 종속성을 다음과 같이 업데이트하여, 프로젝트의 groupId, artifactId, version, name 속성을 대체합니다.

    <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>
    참고

    aws-java-sdk-core의 종속 아티팩트 새 버전이 위에서 지정한 버전(1.11.94)과 호환되지 않는 경우, <version> 태그를 새 버전으로 업데이트해야 합니다.

  8. 다음으로, SDK의 getABOp(GetABOpRequest req), getApiRoot(GetApiRootRequest req), postApiRoot(PostApiRootRequest req) 메서드를 호출하여, SDK를 사용해 API를 호출하는 방법을 살펴봅니다. 이 메서드는 각각 GET /{a}/{b}/{op} API 요청의 페이로드가 포함된 GET /?a={x}&b={y}&op={operator}, POST /, {"a": x, "b": y, "op": "operator"} 메서드에 해당합니다.

    다음과 같이 App.java 파일을 업데이트합니다.

    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()); } }

    앞의 예에서 SDK 클라이언트를 인스턴스화하는 데 사용된 구성 설정은 설명용이며, 권장되는 모범 사례라고 볼 수는 없습니다. sdkClient.shutdown() 호출도 마찬가지로, 리소스 확보 시점에 대한 정밀한 제어가 필요한 경우 등에 선택하는 옵션입니다.

Java SDK를 사용하여 API를 호출하는 기본 패턴은 이미 살펴보았습니다. 다른 API 메서드 호출에도 이 지침을 적용할 수 있습니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.