API Gateway에서 생성한 REST API용 Android SDK 사용 - Amazon API Gateway

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

이 단원에서는 API Gateway에서 생성된 REST API용 Android SDK의 사용 단계를 살펴봅니다. API Gateway 콘솔을 사용하여 API용 SDK 생성의 단계를 이미 완료한 경우에만 계속 진행할 수 있습니다.

참고

생성된 SDK는 Android 4.4 이하 버전에서는 호환되지 않습니다. 자세한 내용은 Amazon API Gateway 중요 정보 단원을 참조하십시오.

API Gateway가 생성한 Android SDK 설치 및 사용 방법
  1. 앞서 다운로드한 API Gateway가 생성한 .zip 파일의 압축을 풉니다.

  2. Apache Maven(버전 3.x 권장)을 다운로드하여 설치합니다.

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

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

  5. mvn install 명령을 실행해 컴파일된 아티팩트 파일을 로컬 Maven 리포지토리에 설치합니다. 그러면 컴파일된 SDK 라이브러리를 포함하는 target 폴더가 생성됩니다.

  6. target 폴더에서 SDK 파일(이름은 SDK를 생성할 때 지정한 아티팩트 ID(Artifact Id)아티팩트 버전(Artifact Version)에서 파생됨(예: simple-calcsdk-1.0.0.jar))을 target/lib 폴더의 다른 모든 라이브러리와 함께 프로젝트의 lib 폴더로 복사합니다.

    Android Studio를 사용하는 경우, 클라이언트 앱 모듈에 libs 폴더를 생성하고 필수 .jar 파일을 복사하여 이 폴더에 붙여 넣습니다. 모듈의 gradle 파일에 있는 종속성 섹션에 다음이 포함되어 있는지 확인합니다.

    compile fileTree(include: ['*.jar'], dir: 'libs') compile fileTree(include: ['*.jar'], dir: 'app/libs')

    복제된 .jar 파일이 선언되지 않도록 합니다.

  7. ApiClientFactory 클래스를 사용하여 API Gateway에서 생성한 SDK를 초기화합니다. 예:

    ApiClientFactory factory = new ApiClientFactory(); // Create an instance of your SDK. Here, 'SimpleCalcClient.java' is the compiled java class for the SDK generated by API Gateway. final SimpleCalcClient client = factory.build(SimpleCalcClient.class); // Invoke a method: // For the 'GET /?a=1&b=2&op=+' method exposed by the API, you can invoke it by calling the following SDK method: Result output = client.rootGet("1", "2", "+"); // where the Result class of the SDK corresponds to the Result model of the API. // // For the 'GET /{a}/{b}/{op}' method exposed by the API, you can call the following SDK method to invoke the request, Result output = client.aBOpGet(a, b, c); // where a, b, c can be "1", "2", "add", respectively. // For the following API method: // POST / // host: ... // Content-Type: application/json // // { "a": 1, "b": 2, "op": "+" } // you can call invoke it by calling the rootPost method of the SDK as follows: Input body = new Input(); input.a=1; input.b=2; input.op="+"; Result output = client.rootPost(body); // where the Input class of the SDK corresponds to the Input model of the API. // Parse the result: // If the 'Result' object is { "a": 1, "b": 2, "op": "add", "c":3"}, you retrieve the result 'c') as String result=output.c;
  8. Amazon Cognito 자격 증명 제공자를 이용하여 API에 대한 호출에 권한을 부여하려면, 다음 예제와 같이 ApiClientFactory 클래스를 사용하여 API Gateway에 의해 생성된 SDK를 통해 일단의 AWS 자격 증명을 전달합니다.

    // Use CognitoCachingCredentialsProvider to provide AWS credentials // for the ApiClientFactory AWSCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider( context, // activity context "identityPoolId", // Cognito identity pool id Regions.US_EAST_1 // region of Cognito identity pool ); ApiClientFactory factory = new ApiClientFactory() .credentialsProvider(credentialsProvider);
  9. API Gateway에 의해 생성된 SDK를 사용해 API 키를 설정하려면 다음과 비슷한 코드를 사용합니다.

    ApiClientFactory factory = new ApiClientFactory() .apiKey("YOUR_API_KEY");