Actions codegen¶
Table of contents
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.
Note
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¶
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.