FeGen core

Common code used by multiple FeGen plugins

License

License

MIT
GroupId

GroupId

com.github.materna-se.fegen
ArtifactId

ArtifactId

fegen-core
Last Version

Last Version

1.0-RC8
Release Date

Release Date

Type

Type

pom.sha512
Description

Description

FeGen core
Common code used by multiple FeGen plugins
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-core

Dependencies

runtime (19)

Group / Artifact Type Version
org.springframework : spring-core jar 5.1.4.RELEASE
org.springframework : spring-context jar 5.1.4.RELEASE
org.springframework.data : spring-data-rest-webmvc jar 3.2.1.RELEASE
org.springframework.data : spring-data-commons jar 1.13.11.RELEASE
javax.persistence : javax.persistence-api jar 2.2
javax.validation : validation-api jar 2.0.1.Final
org.springframework.data : spring-data-rest-core jar 3.2.1.RELEASE
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.3.61
org.jetbrains.kotlin : kotlin-reflect jar 1.3.61
com.fasterxml : classmate jar 1.4.0
com.fasterxml.jackson.core : jackson-annotations jar 2.9.6
org.springframework.security : spring-security-config jar 5.3.5.RELEASE
org.springframework.security : spring-security-web jar 5.3.5.RELEASE
javax.servlet : javax.servlet-api jar 4.0.1
org.springframework.security.extensions : spring-security-saml2-core jar 2.0.0.M31
org.mockito : mockito-core jar 3.8.0
com.squareup : kotlinpoet jar 1.6.0
com.github.materna-se.fegen : fegen-spring-util jar 1.0-RC8
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