Actions Codegen
Introduction
Actions need HTTP handlers to run the business logic. It might be inconvenient to write the complete handler code for every action. Luckily, GraphQL's type system allows us to auto-generate the boilerplate code for actions.
Hasura currently has codegen set up for a few frameworks. The list of supported frameworks should grow with contributions from the community.
Generating handler code for your action
- Console
- CLI
Head to the Actions -> [action-name] -> Codegen
tab in the Console
You can select the framework of your choice to get the corresponding handler boilerplate code.
Configuration
Before being able to codegen for actions, you have to configure your CLI.
Run:
hasura actions use-codegen
Choose which framework you want to codegen for:
Choose if you also wish to clone a starter kit for the chosen framework:
Choose a path where you want to output the auto-generated code files
This command will update your config.yaml
with the codegen config as per your preferences. You can also set these
values manually in config.yaml
.
For example:
version: '2'
endpoint: http://localhost:8080
metadata_directory: metadata
migrations_directory: migrations
actions:
handler_webhook_baseurl: http://localhost:3000
kind: synchronous
codegen:
framework: nodejs-express
output_dir: ./nodejs-express/src/handlers/
Codegen
To finally get auto-generated code for an action, run:
hasura actions codegen <action-name>
The codegen files will be generated at the output_dir
path from config.yaml
.
Codegen for your framework
As of now, Hasura provides codegen for a few frameworks (nodejs-express
, typescript-zeit
, python-flask
and many
more). You can see the full list in the Codegen
tab on the Console after you've
created an action.
We will continue adding more examples to the documentation.
Building your own codegen
If you wish to build a code generator for your framework read the contrib guide.
Introduction to Hasura Actions - View Recording.