Hurdy-Gurdy

Generate client & server Java/Kotlin code from an OpenAPI spec.

Maven Central GitHub repository

What do you want to build?

Fill the form; copy config for your build tool.

Language
Framework
Generate
Java DTO style

What each output is

All three call the same generator with the same knobs. Maven writes into target/generated-sources; Gradle into build/generated-sources/hurdy-gurdy/<name>; the CLI needs an explicit --output.

Parameters

FieldValuesDefaultMeaning
Root packagestringRoot package for generated code (controller and dto subpackages).
Spec pathpathOpenAPI spec file (YAML/JSON).
Languagejava · kotlinjavaTarget language for generated sources.
Frameworkspring · quarkusspringSpring MVC vs Jakarta REST annotations.
Generatecontroller · api · clientcontrollerWhich interfaces to emit (any subset).
Java DTO stylelombok · pojo · recordslombokShape of generated Java DTOs (Java only; Kotlin always uses data classes).
Response parameterboolfalseExpose the raw HTTP response (server + client).
Force snake_casebooltrueTreat DTO properties as snake_case in JSON.

Which interfaces (generate)

SpringQuarkus
controllerServer interface to implement (@GetMapping…)Jakarta REST resource (@GET+@Path…)
apiPure contract (OpenFeign-ready)Pure contract (MicroProfile REST Client)
clientSpring 6 HTTP Interface (@GetExchange…)@RegisterRestClient interface

Deeper topics — inheritance/discriminator, x-extends, external $ref — are covered in the README.