HTTP endpoints
Declaring endpoints
You can declare one or more HTTP endpoints for your handlers.
module "simple_api" {
source = "terrable-dev/terrable-api/aws"
api_name = "my-api"
handlers = {
TestHandler: {
source = "./TestHandlerSource.ts"
http = {
GET = "/route"
POST = "/route"
}
}
}
}
This configuration will allow you to invoke the TestHandler with a
request to the /route endpoint.
module "simple_api" {
source = "terrable-dev/terrable-api/aws"
api_name = "my-api"
handlers = {
TestHandler: {
source = "./TestHandlerSource.ts"
http = {
GET = "/route"
}
}
}
}
This configuration will allow you to invoke the TestHandler with both a GET and a POST
request to the /route endpoint.
Path parameters
Variable path parameters can be specified with the {curly} syntax.
For example:
module "simple_api" {
source = "terrable-dev/terrable-api/aws"
api_name = "my-api"
handlers = {
TestHandler: {
source = "./TestHandlerSource.ts"
http = {
GET = "/users/{id}" # e.g. /users/123
}
}
}
}
This will dynamically match anything specified in place of {id} (eg. /users/100), and the value
of id (which would be 100) will be passed to your handler's code.
Allowed methods
All of the methods allowed by AWS API gateway are allowed. These include:
GETPOSTPUTDELETEPATCHHEADOPTIONSANY(matches all of the above)