REST API 클라이언트를 사용하여 API 호출 - Amazon API Gateway

REST API 클라이언트를 사용하여 API 호출

종합 자습서를 제공하기 위해 이제 AWS IAM 권한 부여를 지원하는 Postman을 사용하여 API를 호출하는 방법을 알아봅니다.

Postman을 사용한 Amazon S3 프록시 API 호출 방법
  1. API를 배포 또는 재배포합니다. 단계 편집기(Stage Editor) 상단의 URL 호출(Invoke URL) 옆에 표시된 API의 기본 URL를 적어 둡니다.

  2. Postman을 시작합니다.

  3. 권한 부여(Authorization)를 선택한 다음 AWS Signature를 선택합니다. IAM 사용자의 액세스 키 ID 및 비밀 액세스 키를 각각 AccessKeySecretKey 입력 필드에 입력합니다. API가 배포되는 AWS 리전을 AWS 리전 텍스트 상자에 입력합니다. 서비스 이름 입력 필드에 execute-api를 입력합니다.

    IAM Management Console의 IAM 사용자 계정에 있는 보안 자격 증명(Security Credentials) 탭에서 키 페어를 생성할 수 있습니다.

  4. amzn-s3-demo-bucket라는 버킷을 {region} 리전에 있는 Amazon S3 계정에 추가하려면:

    1. 드롭다운 메서드 목록에서 PUT을 선택하고 메서드 URL(https://api-id.execute-api.aws-region.amazonaws.com/stage/folder-name)을 입력합니다.

    2. Content-Type 헤더 값을 application/xml로 설정합니다. 콘텐츠 유형을 설정하기 전에 기존 헤더를 모두 삭제해야 할 수 있습니다.

    3. 본문 메뉴 항목을 선택하고 다음의 XML 조각을 요청 본문으로 입력합니다.

      <CreateBucketConfiguration> <LocationConstraint>{region}</LocationConstraint> </CreateBucketConfiguration>
    4. 전송을 선택하여 요청을 제출합니다. 성공한 경우 페이로드가 비어 있는 200 OK 응답을 수신하게 됩니다.

  5. 위 지침에 따라 텍스트 파일을 버킷에 추가합니다. URL에서 amzn-s3-demo-bucket에 대해 {folder}의 버킷 이름을, Readme.txt에 대해 {item}의 파일 이름을 지정하고 파일 콘텐츠로(따라서 요청 페이로드가 됨) Hello, World!의 텍스트 문자열을 요청 페이로드로 제공하면 요청은 다음과 같이 됩니다.

    PUT /S3/amzn-s3-demo-bucket/Readme.txt HTTP/1.1 Host: 9gn28ca086.execute-api.{region}.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T062647Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=ccadb877bdb0d395ca38cc47e18a0d76bb5eaf17007d11e40bf6fb63d28c705b Cache-Control: no-cache Postman-Token: 6135d315-9cc4-8af8-1757-90871d00847e Hello, World!

    모든 것이 순조롭게 완료되면 비어 있는 페이로드가 포함된 200 OK 응답을 수신할 것입니다.

  6. 방금 Readme.txt 버킷에 추가한 amzn-s3-demo-bucket 파일의 콘텐츠를 얻으려면 다음과 같이 GET 요청을 합니다.

    GET /S3/amzn-s3-demo-bucket/Readme.txt HTTP/1.1 Host: 9gn28ca086.execute-api.{region}.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T063759Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ba09b72b585acf0e578e6ad02555c00e24b420b59025bc7bb8d3f7aed1471339 Cache-Control: no-cache Postman-Token: d60fcb59-d335-52f7-0025-5bd96928098a

    성공한 경우 페이로드처럼 200 OK 텍스트 문자열이 포함된 Hello, World! 응답을 수신하게 됩니다.

  7. amzn-s3-demo-bucket 버킷에 있는 항목을 나열하려면 다음의 요청을 제출합니다.

    GET /S3/amzn-s3-demo-bucket HTTP/1.1 Host: 9gn28ca086.execute-api.{region}.amazonaws.com Content-Type: application/xml X-Amz-Date: 20161015T064324Z Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=4ac9bd4574a14e01568134fd16814534d9951649d3a22b3b0db9f1f5cd4dd0ac Cache-Control: no-cache Postman-Token: 9c43020a-966f-61e1-81af-4c49ad8d1392

    성공적으로 수행했을 경우, 이 요청을 제출하기 전에 더 많은 파일을 해당 버킷에 추가하지 않았다면, 지정된 버킷에 단일 항목을 보여 주는 XML 페이로드가 포함된 200 OK 응답을 수신하게 됩니다

    <?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>apig-demo-5</Name> <Prefix></Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>Readme.txt</Key> <LastModified>2016-10-15T06:26:48.000Z</LastModified> <ETag>"65a8e27d8879283831b664bd8b7f0ad4"</ETag> <Size>13</Size> <Owner> <ID>06e4b09e9d...603addd12ee</ID> <DisplayName>user-name</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>
참고

이미지를 업로드하거나 다운로드하려면 콘텐츠 처리를 CONVERT_TO_BINARY로 설정해야 합니다.