FlatPack is serialization framework used by Perka to make its JPA entities available via REST to JavaScript, iOS, and Android clients.
- Serialize arbitrary JPA object graphs into payloads that can be processed easily in non-Java environments.
- Support role- and principal-based security on property access.
- Integration with jax-rs (specifically Jersey).
- Straightforward code generation of client libraries and documentation.
- Minimize developer friction
apidocandapidoc-pluginare used during the maven build process to make JavaDoc strings available toApiDescriber.clientprovides support code for generated client libraries.corecontains the serialization logic. The central types areFlatPack,Packer, andUnpacker.demo-clientanddemo-servershow a very simple JAX-RS server and how to use generated client code. Thedemo-clientmodule also contains smoke-tests.eclipse-plugincontains an m2eclipse connector for the FlatPack plugins. A pre-built drop-in is available at from the project downloads.fastandfast-plugin, the FlatPack Automatic Source Tool, take anApiDescriptionand generate client access libraries consisting of DTO objects and API request methods.jerseywires FlatPack into Jersey's request dispatch logic. TheApiDescribertype will produce a FlatPack description of the API server's methods and entities.searchis utility code.
Additional documentation is available in the FlatPack wiki.