{"id":14986468,"url":"https://github.com/chrimle/openapi-to-java-records-mustache-templates","last_synced_at":"2026-04-02T12:16:01.417Z","repository":{"id":255954192,"uuid":"853046067","full_name":"Chrimle/openapi-to-java-records-mustache-templates","owner":"Chrimle","description":"Generate Java Records from OpenAPI Specifications","archived":false,"fork":false,"pushed_at":"2025-04-10T17:13:24.000Z","size":1021,"stargazers_count":5,"open_issues_count":35,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T22:52:31.333Z","etag":null,"topics":["java","java-17","mustache","mustache-templates","openapi","openapi-generator","openapi-generator-maven-plugin","openapi-specification","openapi3"],"latest_commit_sha":null,"homepage":"https://chrimle.github.io/openapi-to-java-records-mustache-templates/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Chrimle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"chrimle","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2024-09-05T22:21:02.000Z","updated_at":"2025-04-09T18:43:34.000Z","dependencies_parsed_at":"2024-11-04T21:18:19.882Z","dependency_job_id":"caea38e4-1503-4175-a55a-9df3de8303f1","html_url":"https://github.com/Chrimle/openapi-to-java-records-mustache-templates","commit_stats":{"total_commits":45,"total_committers":2,"mean_commits":22.5,"dds":"0.33333333333333337","last_synced_commit":"5c82c4161cea1674dab2b385a008878da48e50ad"},"previous_names":["chrimle/openapi-to-java-records-mustache-templates"],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chrimle%2Fopenapi-to-java-records-mustache-templates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chrimle%2Fopenapi-to-java-records-mustache-templates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chrimle%2Fopenapi-to-java-records-mustache-templates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chrimle%2Fopenapi-to-java-records-mustache-templates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chrimle","download_url":"https://codeload.github.com/Chrimle/openapi-to-java-records-mustache-templates/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492961,"owners_count":21113161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","java-17","mustache","mustache-templates","openapi","openapi-generator","openapi-generator-maven-plugin","openapi-specification","openapi3"],"created_at":"2024-09-24T14:12:55.128Z","updated_at":"2026-04-02T12:16:01.399Z","avatar_url":"https://github.com/Chrimle.png","language":"Java","funding_links":["https://github.com/sponsors/chrimle"],"categories":[],"sub_categories":[],"readme":"![O2JRM Logo](docs/assets/banner_logo.png)\n[![Maven Central Version](https://img.shields.io/maven-central/v/io.github.chrimle/openapi-to-java-records-mustache-templates?style=flat)](https://central.sonatype.com/artifact/io.github.chrimle/openapi-to-java-records-mustache-templates)\n[![MvnRepository](https://badges.mvnrepository.com/badge/io.github.chrimle/openapi-to-java-records-mustache-templates/badge.svg?type=rank\u0026label=MvnRepository)](https://mvnrepository.com/artifact/io.github.chrimle/openapi-to-java-records-mustache-templates)\n![JUnit Test Suite](https://img.shields.io/badge/JUnit_Test_Suite-24112_Tests-blue?style=flat)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/Chrimle/openapi-to-java-records-mustache-templates/badge)](https://scorecard.dev/viewer/?uri=github.com/Chrimle/openapi-to-java-records-mustache-templates)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12077/badge)](https://www.bestpractices.dev/projects/12077)\n\nProject containing [Mustache-templates](https://mustache.github.io/) used by [openapi-generator-maven-plugin](https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator-maven-plugin/README.md) to generate [Java Records](https://docs.oracle.com/en/java/javase/17/language/records.html) from [OpenAPI Specifications](https://swagger.io/specification/).\n\nThis project contains the **mustache templates**.\n\n## Apache License 2.0\nThis project is licensed under the **[Apache License 2.0](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/blob/main/LICENSE)**.\n\n## Support the Project\nIf you find this project useful, please ⭐ **Star** ⭐ it and share it with others!\nThis is the best way to show appreciation for this project - Thank you! ❤️\n\nIf you have feedback or suggestions, please share it in either [Discussions](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/discussions) or [Issues](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/issues)!\n\n\u003e [!NOTE]\n\u003e This project is, _and will continue to be_, solely maintained by [Chrimle](https://github.com/Chrimle). \n\u003e While _direct_ code contributions are disallowed, your feedback is the most valuable contribution - please share it!\n\n# Used by ...\n\n\u003e [!TIP]\n\u003e Does your organization use this project? Be featured here, by filling out this form: [Update Organization Usage](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/issues/new/choose)\n\n# Getting Started\n\u003e [!TIP]\nIf you want a more detailed guide with simple examples to get started, check out the Wiki-page\n\u003e [Beginner Guide (Step-by-Step)](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/wiki/Beginner-Guide-%28Step‐by‐Step%29).\n\n## Supported `openapi-generator` Versions\n\nThese _mustache templates_ (**[latest release](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/releases)**) are backwards-compatible and are continuously tested with all these versions:\n\n- [7.21.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.21.0) - 2026, Mar 24 (latest)\n- [7.20.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.20.0) - 2026, Feb 16\n- [7.19.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.19.0) - 2026, Jan 19\n- [7.18.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.18.0) - 2025, Dec 22\n- [7.17.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.17.0) - 2025, Oct 29\n- [7.16.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.16.0) - 2025, Sep 28\n- [7.15.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.15.0) - 2025, Aug 22\n- [7.14.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.14.0) - 2025, Jun 25\n- [7.13.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.13.0) - 2025, Apr 27\n- [7.12.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.12.0) - 2025, Feb 28\n- [7.11.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.11.0) - 2025, Jan 20\n\nOlder/newer versions may work, but are currently not part of the CI Test Suite.\n\n## Obtain Mustache Templates\n\n\u003e [!NOTE]\n\u003e The Maven artifact **only** contains the `.mustache` template files and a `LICENSE.txt`.\n\u003e - `spring-templates/` (preview/experimental. See [#684](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/pull/684))\n\u003e   - `javadoc.mustache`\n\u003e   - `licenseInfo.mustache`\n\u003e   - `pojo.mustache`\n\u003e   - `useBeanValidation.mustache`\n\u003e - `templates/`\n\u003e   - `generateBuilders.mustache`\n\u003e   - `javadoc.mustache`\n\u003e   - `licenseInfo.mustache`\n\u003e   - `modelEnum.mustache`\n\u003e   - `pojo.mustache`\n\u003e   - `useBeanValidation.mustache`\n\u003e - `LICENSE.txt`\n\u003e\n\u003e No other files are included in the imported artifact.\n\u003e ```xml\n\u003e \u003cdependency\u003e\n\u003e    \u003cgroupId\u003eio.github.chrimle\u003c/groupId\u003e\n\u003e    \u003cartifactId\u003eopenapi-to-java-records-mustache-templates\u003c/artifactId\u003e\n\u003e    \u003cversion\u003e\u003c!-- Check for latest version --\u003e\u003c/version\u003e\n\u003e \u003c/dependency\u003e\n\u003e ```\n\nThese mustache templates may be obtained in several (4) ways (_ordered by convenience_):\n\n### 1. Use `maven-dependency-plugin` (Recommended)\nUse a plugin such as `maven-dependency-plugin` to unpack the `.mustache` files from `io.github.chrimle:openapi-to-java-records-mustache-templates`.\n\u003e [!CAUTION]\n\u003e **SECURITY BEST PRACTICES**\n\u003e \n\u003e Do not unpack arbitrary files from the downloaded artifact. Always explicitly list individual files to unpack. (_Semantic Versioning is already considering this_).\n\u003e [Further information in Security Policy](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/security/policy).\n\n### 2. Download from Maven Central\nDownload the GPG-Signed artifact `io.github.chrimle:openapi-to-java-records-mustache-templates` from [Maven Central Repository](https://central.sonatype.com/artifact/io.github.chrimle/openapi-to-java-records-mustache-templates)\nand copy the `.mustache`-files from the `/templates` directory.\n\n### 3. Download from GitHub Packages\nDownload the `io.github.chrimle:openapi-to-java-records-mustache-templates` Package from [GitHub Packages](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/packages/)\nand copy the `.mustache`-files from the `/templates` directory.\n\n### 4. Download the Source Code from GitHub Releases\nDownload the GPG-Signed source code from [Releases](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/releases)\nand copy the `.mustache`-files from the `mustache-templates/target/classes/templates` directory.\n\n## Use the `.mustache` templates when generating\nPlace the file(s) in desired directory. Then, in the Maven build configuration, set the property `\u003ctemplateDirectory\u003e` to the directory path. Example:\n```xml\n\u003cbuild\u003e\n  \u003cplugins\u003e\n    \u003cplugin\u003e\n      \u003cgroupId\u003eorg.openapitools\u003c/groupId\u003e\n      \u003cartifactId\u003eopenapi-generator-maven-plugin\u003c/artifactId\u003e\n      \u003cexecutions\u003e\n        \u003cexecution\u003e\n          \u003cgoals\u003e\n            \u003cgoal\u003egenerate\u003c/goal\u003e\n          \u003c/goals\u003e\n          \u003cconfiguration\u003e\n            \u003cinputSpec\u003e\u003c!-- Relative directory path to the openapi.yaml file --\u003e\u003c/inputSpec\u003e\n            \u003ctemplateDirectory\u003e\u003c!-- Relative directory path to the mustache templates --\u003e\u003c/templateDirectory\u003e\n            \u003coutput\u003e\u003c!-- Relative directory path to where generated classes should be placed --\u003e\u003c/output\u003e\n          \u003c/configuration\u003e\n        \u003c/execution\u003e\n      \u003c/executions\u003e\n    \u003c/plugin\u003e\n  \u003c/plugins\u003e\n\u003c/build\u003e\n```\n## Additional Configurations\nThe generated classes are customizable by using `\u003cconfiguration\u003e`-properties.\n\nIn this example, each generated class field will be annotated with [Jakarta Bean Validation annotations](https://jakarta.ee/specifications/bean-validation/3.0/jakarta-bean-validation-spec-3.0.html#builtinconstraints).\n```xml\n  \u003cconfiguration\u003e\n    \u003c!-- ... more configurations ... --\u003e\n    \u003cconfigOptions\u003e\n      \u003cuseBeanValidation\u003etrue\u003c/useBeanValidation\u003e\n      \u003c!-- ... more configOptions ... --\u003e\n    \u003c/configOptions\u003e\n  \u003c/configuration\u003e\n```\n\n\u003e [!TIP]\n\u003e See [Supported 'openapi‐generator‐maven‐plugin' Configuration options](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/wiki/Supported-%27openapi‐generator‐maven‐plugin%27-Configuration-options)\n\n## OpenAPI Specification\n\u003cdetails open\u003e\n\u003csummary\u003eExample OpenAPI Specification\u003c/summary\u003e\n    \n```yaml\ncomponents:\n  schemas:\n    Name:\n      description: Name Information\n      type: object\n      required:\n        - firstName\n        - lastName\n      properties:\n        firstName:\n          description: First Name\n          type: string\n          minLength: 2\n        lastName:\n          description: Last Name\n          type: string\n          minLength: 2\n        middleName:\n          description: Middle Name\n          type: string\n          nullable: true\n    Person:\n      description: Personal information\n      deprecated: true\n      type: object\n      required:\n        - name\n        - age\n        - gender\n        - height\n        - ssn\n        - aliases\n        - email\n        - trackingCode\n        - uuid\n      properties:\n        name:\n          description: Name\n          type: object\n          $ref: '#/components/schemas/Name'\n        age:\n          description: Age (years)\n          type: integer\n          minimum: 0\n          maximum: 100\n        gender:\n          description: Gender\n          type: string\n          enum:\n            - Male\n            - Female\n        height:\n          description: Height (m)\n          type: number\n          pattern: float\n          minimum: 0\n        legalGuardian:\n          description: Legal Guardian\n          type: object\n          $ref: '#/components/schemas/Person'\n        ssn:\n          description: Social Security Number\n          type: string\n          pattern: '^\\d{3}-\\d{2}-\\d{4}$'\n        aliases:\n          description: Known Aliases\n          type: array\n          uniqueItems: true\n          minItems: 1\n          maxItems: 3\n          items:\n            type: string\n        telephoneNumber:\n          description: Telephone Number\n          type: string\n          nullable: true\n        email:\n          description: Email Address\n          type: string\n          format: email\n        trackingCode:\n          description: Tracking code for Web analytics\n          type: string\n          minLength: 5\n          maxLength: 50\n          default: \"utm_source=default\"\n        uuid:\n          description: An Universally Unique Identifier\n          type: string\n          format: uuid\n```\n\n\u003c/details\u003e\n\n\u003e [!TIP]\n\u003e See [Supported OpenAPI Specification properties](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/wiki/Supported-OpenAPI-Specification-properties)\n\n## Generate models\nCompile the project, for example via:\n```console\nmvn compile\n```\n\n\u003e [!TIP]\n\u003e Further information about how to generate models can be found on [openapi-generator-maven-plugin](https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator-maven-plugin/README.md).\n\n## Generated Java Record\nUnless the configuration property `\u003coutput\u003e` has been set, the generated classes should be found under `./target/generated-sources/openapi`.\n\n\u003cdetails open\u003e\n    \n\u003csummary\u003eResulting Java record from example OpenAPI spec.\u003c/summary\u003e\n\n```java\npackage io.github.chrimle.o2jrm;\n\n/**\n * Personal information\n *\n * @deprecated\n * @param name Name.\n * @param age Age (years)\n * @param gender Gender\n * @param height Height (m)\n * @param legalGuardian Person.\n * @param ssn Social Security Number\n * @param aliases Known Aliases\n * @param telephoneNumber Telephone Number\n * @param email Email Address\n * @param trackingCode Tracking code for Web analytics\n * @param uuid An Universally Unique Identifier\n */\n@Deprecated\npublic record Person(\n    @Valid @NotNull Name name,\n    @NotNull @Min(0) @Max(100) Integer age,\n    @NotNull GenderEnum gender,\n    @NotNull @DecimalMin(\"0\") BigDecimal height,\n    @Valid Person legalGuardian,\n    @NotNull @Pattern(regexp = \"^\\\\d{3}-\\\\d{2}-\\\\d{4}$\") String ssn,\n    @NotNull @Size(min = 1, max = 3) Set\u003cString\u003e aliases,\n    String telephoneNumber,\n    @NotNull @Email String email,\n    @NotNull @Size(min = 5, max = 50) String trackingCode,\n    @NotNull UUID uuid) {\n\n  public Person(\n      final Name name,\n      final Integer age,\n      final GenderEnum gender,\n      final BigDecimal height,\n      final Person legalGuardian,\n      final String ssn,\n      final Set\u003cString\u003e aliases,\n      final String telephoneNumber,\n      final String email,\n      final String trackingCode,\n      final UUID uuid) {\n    this.name = name;\n    this.age = age;\n    this.gender = gender;\n    this.height = height;\n    this.legalGuardian = legalGuardian;\n    this.ssn = ssn;\n    this.aliases = Objects.requireNonNullElseGet(aliases, () -\u003e new LinkedHashSet\u003c\u003e());\n    this.telephoneNumber = telephoneNumber;\n    this.email = email;\n    this.trackingCode = Objects.requireNonNullElse(trackingCode, \"utm_source=default\");\n    this.uuid = uuid;\n  }\n\n  /**\n   * Gender\n   */\n  public enum GenderEnum {\n    MALE(\"Male\"),\n    FEMALE(\"Female\");\n\n    private final String value;\n\n    GenderEnum(final String value) {\n      this.value = value;\n    }\n\n    /**\n     * Gets the {@code value} of this enum.\n     *\n     * @return the value of this enum.\n     */\n    public String getValue() {\n      return value;\n    }\n\n    /**\n     * Case-sensitively matches the given {@code value} to an enum constant using {@link\n     * #getValue()}.\n     *\n     * \u003cp\u003e\u003cb\u003eNOTE:\u003c/b\u003e if multiple enum constants have a matching value, the first enum constant is\n     * returned, by the order they are declared.\n     *\n     * @param value of the enum.\n     * @return a {@link GenderEnum } with the matching value.\n     * @throws IllegalArgumentException if no enum has a value matching the given value.\n     */\n    public static GenderEnum fromValue(final String value) {\n      for (final GenderEnum constant : GenderEnum.values()) {\n        if (constant.getValue().equals(value)) {\n          return constant;\n        }\n      }\n      throw new IllegalArgumentException(\"Unexpected value '\" + value + \"'\");\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n## Further examples\n\nRefer to the test-cases for generated classes, as these list supported plugin `\u003cconfiguration\u003e`-options and OpenAPI\nSpecification-properties. The unit-tests could clarify expected behaviors, and the OpenAPI Specification could also\nprovide concrete examples and use-cases. For reference:\n\n- [OpenAPI Specification](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/blob/main/test-common/src/main/resources/api.yaml)\u003cbr/\u003e\n  Used as the input schema to generate **all** classes used in testing.\n- [Maven plugin executions](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/blob/main/test-java/pom.xml#L150)\u003cbr/\u003e\n  Generates classes from the OpenAPI spec, with different `openapi-generator-maven-plugin` configuration options. The\n  resulting classes are placed in sub-packages, named after the plugin-execution.\n- [Generated classes](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/tree/main/test-java/target/generated-sources/src/gen/java/main/io/github/chrimle/o2jrm)\u003cbr/\u003e\n  The resulting classes are organized into sub-packages, which facilitates testing. These files are - _albeit in no way\n  necessary_ - tracked and versioned in order to be accessible without needing to compile anything. Furthermore, it\n  makes it easier to spot differences in generated classes after making a change to the mustache templates.\n- [Test Suite](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/tree/main/test-common/src/test/java/io/github/chrimle/o2jrm/tests)\u003cbr/\u003e\n  Contains all test-cases for generated `record` and `enum` classes. These tests are _parameterized_, to test **all**\n  classes in the OpenAPI Specification in combination with **all** plugin-executions. This consists of \u003e20 000 tests.\n\n## Encountered an issue?\nFirstly, make a minimal reproducible example - it will greatly facilitate troubleshooting!\n\nPlease, verify these steps _without_ custom mustache-template files:\n1. Verify that the Maven Build Configuration is correct.\n2. Verify that the OpenAPI Specification is valid.\n3. Verify that classes are generated successfully.\n4. Verify that needed dependencies are imported.\n\nOnce verified, use the custom mustache-template files and verify the following:\n1. Verify that the `openapi-generator-maven-plugin` configuration options are supported. See [Supported 'openapi‐generator‐maven‐plugin' Configuration options](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/wiki/Supported-%27openapi‐generator‐maven‐plugin%27-Configuration-options).\n   - If no configuration options are set, please proceed to the next step.\n   - If the configuration option is not listed as supported - please request it via [open an issue](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/issues/new/choose).\n2. Verify that the OpenAPI Specification properties are supported. See [Supported OpenAPI Specification properties](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/wiki/Supported-OpenAPI-Specification-properties).\n   - If the property is not listed as supported - please request it via [open an issue](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/issues/new/choose).\n3. Compare `openapi-generator-maven-plugin` versions\n   - As a last resort, it could be due to using an older/newer version than what is used within this project for testing.\n     Even if this would solve the issue - please report it via [open an issue](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/issues/new/choose).\n\nIf problems persist, check the [open issues](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/issues). \nIf the problem you are facing has not already been reported, please [open an issue](https://github.com/Chrimle/openapi-to-java-records-mustache-templates/issues/new/choose) with details and instructions to reproduce.\n\n### Useful Resources\n\n- [Maven in 5 minutes](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)\n- [OpenAPI Basic Structure](https://swagger.io/docs/specification/basic-structure/)\n- [openapi-generator-maven-plugin](https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator-maven-plugin/README.md)\n- [Mustache](https://mustache.github.io/)\n\n\u003c!-- Scarf Pixel Tracker --\u003e\n\u003cimg referrerpolicy=\"no-referrer-when-downgrade\" src=\"https://static.scarf.sh/a.png?x-pxid=d9ff30fa-ffcc-4963-a18d-9977bb84c3ad\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrimle%2Fopenapi-to-java-records-mustache-templates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrimle%2Fopenapi-to-java-records-mustache-templates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrimle%2Fopenapi-to-java-records-mustache-templates/lists"}