FeGen Kotlin

Common code used by FeGen plugins generating Kotlin code

License

License

MIT
Categories

Categories

Kotlin Languages
GroupId

GroupId

com.github.materna-se.fegen
ArtifactId

ArtifactId

fegen-kotlin
Last Version

Last Version

1.0-RC8
Release Date

Release Date

Type

Type

pom.sha512
Description

Description

FeGen Kotlin
Common code used by FeGen plugins generating Kotlin code
Project URL

Project URL

https://github.com/materna-se/fegen
Source Code Management

Source Code Management

https://github.com/materna-se/fegen/tree/master

Download fegen-kotlin

Dependencies

runtime (4)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.3.61
com.github.materna-se.fegen : fegen-core jar 1.0-RC8
com.squareup : kotlinpoet jar 1.6.0
org.atteo : evo-inflector jar 1.2.2

Project Modules

There are no modules declared in this project.

🧹 FeGen for Spring Boot

FeGen generates frontend code based on your Spring backend, so you can consume your Spring Data REST API in a type safe manner. Typescript and Kotlin are supported as frontend languages, so FeGen helps you create a web app, a native Android app or another Spring application.

If you are new to FeGen, have a look at the Documentation.

An example project demonstrating the usage of FeGen can be found in the git submodule fegen-examples.

Features

FeGen plugins are available for Gradle as well as Maven. Code generated by FeGen enables you to access the following Spring features:

  • Call CRUD operations on JpaRepositorys while using pagination and sorting
  • Fetch multiple related entities in one API call using projections
  • Use repository- as well as custom searches to only access entities matching certain criteria
  • Call custom endpoints

Code can be generated for the following target platforms:

  • Typescript (To be used in e.g. a React app)
  • Kotlin
    • Inter service (To be used in another Spring application)
    • Android

Limitations / Roadmap

FeGen currently has some limitations such as the following which may be lifted in future versions:

  • Embeddables can be used, but they may only contain primitive types since references to other entities are not yet supported
  • A plugin for Swift (to use in iOS apps) exists, but is not yet publicly released
  • Generating code for API endpoints used to up- or download files is not supported
  • There are some tests for the generated code, however, currently no CI/CD pipeline exists

Building FeGen

The source code of FeGen is split into two gradle subprojects that correspond to the frontend languages that code can be generated for. Additionally, fegen-core contains the code that is independent of the target language. Each of these directories contain two sub projects that contain code that is specific to maven and gradle respectively.

com.github.materna-se.fegen

Materna Information & Communications SE

We advise and assist you in all aspects of digitization and provide tailor-made technologies for agile, flexible and secure IT.

Versions

Version
1.0-RC8
1.0-RC7
1.0-RC6
1.0-RC5
1.0-RC4
1.0-RC3
1.0-RC2
1.0-RC1