aws-api-gateway-cli-test

    1.3.2 • Public • Published

    AWS API Gateway Test CLI NPM Version

    A simple CLI to test API Gateway endpoints with IAM authorization. Uses the AWS SDK, AWS Cognito JS SDK, and the generic API Gateway Client. Using the login information given, this tool logs a user into the Cognito User Pool, gets the temporary IAM credentials, and makes the API request. It can be difficult to do these steps by hand without scripting them.

    Installation

    To install globally run the following:

    $ npm install -g aws-api-gateway-cli-test
    

    You can also use it locally using:

    $ npx aws-api-gateway-cli-test
    

    Usage

    If you have it globally installed:

    $ apig-test \
      --username='johndoe' \
      --password='password' \
      --user-pool-id='us-east-1_Xxxxxxxx' \
      --app-client-id='29xxyyxxyxxxyyxxxyy' \
      --cognito-region='us-east-1' \
      --identity-pool-id='us-east-1:99xxyyx-9999-9999-xx0x-99xxxxxxxx' \
      --invoke-url='https://99xxxxxxx.execute-api.us-east-1.amazonaws.com' \
      --api-gateway-region='us-east-1' \
      --api-key='x3xaacea33DCDA3aqafae28aCdaeEWXX1ada3acx' \
      --path-template='/users' \
      --method='GET' \
      --params='{}' \
      --additional-params='{}' \
      --access-token-header='cognito-access-token' \
      --body='{}'

    If you have it locally installed:

    $ npx aws-api-gateway-cli-test --options

    This command takes the following options:

    • username The username of the Cognito User Pool user.

    • password The password of the Cognito User Pool user.

    • user-pool-id The Cognito User Pool Id.

    • app-client-id The Cognito User Pool App Client Id.

    • cognito-region The Cognito User Pool region. Defaults to us-east-1.

    • identity-pool-id The Cognito Identity Pool Id.

    • invoke-url The API Gateway root endpoint.

    • api-gateway-region The API Gateway region. Defaults to us-east-1.

    • api-key The API key if required by the method. Defaults to none.

    • path-template The path template of the API.

    • method The API method. Defaults to GET.

    • params The API path params as a JSON string. Defaults to '{}'.

    • additional-params Any additional params (including the headers and querystring) as a JSON string. Defaults to '{}'.

    • access-token-header Header field on which to pass the access token.

    • body The request body as a JSON string. Defaults to '{}'. Alternatively, reference a file with a JSON string using --body='@mocks/create.json' where mocks/create.json is the file with the request body.

    For additional documentation on the format for params and additional-params; refer to the generic API Gateway Client docs.

    Examples

    To pass in path parameters with your request.

    $ npx aws-api-gateway-cli-test \
    --username='email@example.com' \
    --password='password' \
    --user-pool-id='abc' \
    --app-client-id='def' \
    --cognito-region='us-east-1' \
    --identity-pool-id='ghi' \
    --invoke-url='https://123.execute-api.us-east-1.amazonaws.com/prod' \
    --api-gateway-region='us-east-1' \
    --path-template='/notes/{id}' \
    --params='{"id":"456"}' \
    --method='GET'

    To pass in query parameters and headers with your request.

    $ npx aws-api-gateway-cli-test \
    --username='email@example.com' \
    --password='password' \
    --user-pool-id='abc' \
    --app-client-id='def' \
    --cognito-region='us-east-1' \
    --identity-pool-id='ghi' \
    --invoke-url='https://123.execute-api.us-east-1.amazonaws.com/prod' \
    --api-gateway-region='us-east-1' \
    --path-template='/notes' \
    --additional-params='{"queryParams":{"param0":"abc"},"headers":{"param1":"123"}}' \
    --method='GET'

    Local Development

    Clone the repo and initialize the project.

    $ git clone https://github.com/AnomalyInnovations/aws-api-gateway-cli-test
    $ cd aws-api-gateway-cli-test
    $ npm install
    

    Test the command using node index.js.

    To install the apig-test command, run the following:

    $ npm link
    

    Feedback

    Send us your feedback via Twitter to Frank Wang (@fanjiewang) or Jay V (@jayair). Or send us an email.

    Keywords

    none

    Install

    npm i aws-api-gateway-cli-test

    DownloadsWeekly Downloads

    88

    Version

    1.3.2

    License

    MIT

    Unpacked Size

    23.8 kB

    Total Files

    5

    Last publish

    Collaborators

    • jayair