Skip to content

Testing the REST API

When deployed we got the list of our endpoints as outputs:

endpoints:
  POST - https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos
  GET - https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos
  GET - https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos/{id}
  PUT - https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos/{id}
  DELETE - https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos/{id}

We can use cUrl to test them:


➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ curl --location --request POST 'https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos' \
--header 'Content-Type: application/json' \
--data-raw '{"text":"Do something!"}'
{"id":"6a86c070-2b65-11ec-8afa-cb984a671a49","text":"Do something!","checked":false,"createdAt":1634047512055,"updatedAt":1634047512055}%                                                                                                 

➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ curl --location --request POST 'https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos' \
--header 'Content-Type: application/json' \
--data-raw '{"text":"Do something else!"}'
{"id":"86ae3da0-2b65-11ec-8afa-cb984a671a49","text":"Do something else!","checked":false,"createdAt":1634047559290,"updatedAt":1634047559290}%                                                                                            

➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ curl --location --request GET 'https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos'
[{"checked":false,"createdAt":1634047559290,"text":"Do something else!","id":"86ae3da0-2b65-11ec-8afa-cb984a671a49","updatedAt":1634047559290},{"checked":false,"createdAt":1634047512055,"text":"Do something!","id":"6a86c070-2b65-11ec-8afa-cb984a671a49","updatedAt":1634047512055}]%                                                                      

➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ curl --location --request GET 'https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos/86ae3da0-2b65-11ec-8afa-cb984a671a49'
{"checked":false,"createdAt":1634047559290,"text":"Do something else!","id":"86ae3da0-2b65-11ec-8afa-cb984a671a49","updatedAt":1634047559290}%                                                                                            

➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ curl --location --request DELETE 'https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos/86ae3da0-2b65-11ec-8afa-cb984a671a49'
{}%                                                                                                                  

➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ curl --location --request GET 'https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos/86ae3da0-2b65-11ec-8afa-cb984a671a49'                                             

➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ curl --location --request GET 'https://wj34feq9gl.execute-api.eu-west-1.amazonaws.com/dev/todos'                                        
[{"checked":false,"createdAt":1634047512055,"text":"Do something!","id":"6a86c070-2b65-11ec-8afa-cb984a671a49","updatedAt":1634047512055}]%                                                                                               

➜  06-aws-node-rest-api-with-dynamodb git:(master) ✗ 

We can also see the items in our DynamoDB table.