Chiamata dell'API mediante un client API REST - Amazon API Gateway

Chiamata dell'API mediante un client API REST

Per fornire un tutorial completo, mostreremo ora come chiamare l'API utilizzando Postman, che supporta l'autorizzazione AWS IAM.

Per chiamare l'API proxy Amazon S3 utilizzando Postman
  1. Distribuisci o ridistribuisci l'API. Annota l'URL di base dell'API visualizzato accanto a Invoke URL (URL chiamata) in alto in Stage Editor (Editor fasi).

  2. Avvia Postman.

  3. Seleziona Authorization (Autorizzazione), quindi scegli AWS Signature. Immetti l'ID chiave di accesso dell'utente IAM e la chiave di accesso segreta rispettivamente nei campi di input AccessKey e SecretKey. Immetti la Regione AWS in cui è implementata l'API nella casella di testo Regione AWS. Immetti execute-api nel campo di input Nome servizio.

    Puoi creare una coppia di chiavi dalla scheda Security Credentials (Credenziali di sicurezza) con il tuo account utente IAM nella console di gestione IAM.

  4. Per aggiungere un bucket denominato amzn-s3-demo-bucket all'account Amazon S3 nella regione {region}:

    1. Seleziona PUT nell'elenco a discesa dei metodi e digita l'URL del metodo (https://api-id.execute-api.aws-region.amazonaws.com/stage/folder-name)

    2. Imposta il valore dell'intestazione Content-Type come application/xml. Potrebbe essere necessario eliminare le intestazioni esistenti prima di impostare il tipo di contenuto.

    3. Seleziona la voce di menu Body (Corpo) e digita il seguente frammento XML come corpo della richiesta:

      <CreateBucketConfiguration> <LocationConstraint>{region}</LocationConstraint> </CreateBucketConfiguration>
    4. Seleziona Send (Invia) per inviare la richiesta. Se l'operazione viene eseguita correttamente, dovresti ricevere una risposta 200 OK con un payload vuoto.

  5. Per aggiungere un file di testo a un bucket, segui le istruzioni riportate sopra. Se specifichi il nome bucket amzn-s3-demo-bucket per {folder} e il nome file Readme.txt per {item} nell'URL e fornisci la stringa di testo Hello, World! come contenuti del file (rendendola così il payload di richiesta), la richiesta diventa

    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!

    Se l'operazione viene eseguita correttamente, dovresti ricevere una risposta 200 OK con un payload vuoto.

  6. Per ottenere il contenuto del file Readme.txt appena aggiunto al bucket amzn-s3-demo-bucket, esegui una richiesta GET come la seguente:

    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

    Se l'operazione viene eseguita correttamente, dovresti ricevere una risposta 200 OK con la stringa di testo Hello, World! come payload.

  7. Per elencare le voci nel bucket amzn-s3-demo-bucket, invia la richiesta seguente:

    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

    Se l'operazione riesce, dovresti ricevere una risposta 200 OK con un payload XML che mostra una voce singola nel bucket specificato, a meno che tu non abbia aggiunto altri file al bucket prima di inviare questa richiesta.

    <?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>
Nota

Per caricare o scaricare un'immagine, è necessario impostare la gestione del contenuto su CONVERT_TO_BINARY.