aws-api-gateway-cli-test v1.3.2
AWS API Gateway Test CLI
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-testYou can also use it locally using:
$ npx aws-api-gateway-cli-testUsage
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 --optionsThis command takes the following options:
usernameThe username of the Cognito User Pool user.passwordThe password of the Cognito User Pool user.user-pool-idThe Cognito User Pool Id.app-client-idThe Cognito User Pool App Client Id.cognito-regionThe Cognito User Pool region. Defaults tous-east-1.identity-pool-idThe Cognito Identity Pool Id.invoke-urlThe API Gateway root endpoint.api-gateway-regionThe API Gateway region. Defaults tous-east-1.api-keyThe API key if required by the method. Defaults to none.path-templateThe path template of the API.methodThe API method. Defaults toGET.paramsThe API path params as a JSON string. Defaults to'{}'.additional-paramsAny additional params (including the headers and querystring) as a JSON string. Defaults to'{}'.access-token-headerHeader field on which to pass the access token.bodyThe request body as a JSON string. Defaults to'{}'. Alternatively, reference a file with a JSON string using--body='@mocks/create.json'wheremocks/create.jsonis 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 installTest the command using node index.js.
To install the apig-test command, run the following:
$ npm linkFeedback
Send us your feedback via Twitter to Frank Wang (@fanjiewang) or Jay V (@jayair). Or send us an email.