Core Development Concepts > Extending and Customizing
Adding Custom Route to Existing Webiny Lambda
Learn how to add a custom route to existing Webiny Lambda
- how to add a custom route
- how to add a custom route handler
Introduction
Starting with the Webiny version 5.31.0, when we added the Fastify, users can quite easily add new routes to our existing Lambdas.
Users can add as many routes as they want, with possibility for them to be a POST
, GET
, OPTIONS
, PUT
, PATH
, DELETE
and HEAD
method routes.
Adding a Route to the API Gateway
First, we need to add the route to the API Gateway
.
Without this part, the route will not be known by the API Gateway
and users will get a 404
response.
After these changes, feel free to deploy the api part of your project to test if new route is working. Use your favorite HTTP client to test it out.
Dynamic API Gateway Route
To have a API Gateway route which accepts dynamic parameters, you must specify the parameter in the path, in our case the {id}
.
Adding a Route to the Handler
After you added the route to the API Gateway
, you can move onto creating a route in our existing handler.
Dynamic Webiny Handler Route
To have a Fastify route which accepts dynamic parameters, you must specify the parameter in the path, in our case the :id
.
In the createApiGatewayRoute
method callback, there are multiple properties available:
onPost
- register a POST method routeonOptions
- register an OPTIONS method routeonDelete
- register a DELETE method routeonPatch
- register a PATCH method routeonGet
- register a GET method routeonHead
- register a HEAD method routeonPut
- register a PUT method routeonAll
- register a route which will catch all the existing methodscontext
- our Webiny internal context with all our applications attached to it
The request
and reply
objects are the original ones from the Fastify, so you can look into their documentation about what they contain and what you can use.