Start with introduction to core code and the server-side source code repositories.
The Okapi Guide and Reference provides the necessary background understanding.
The FOLIO-Sample-Modules guide further explains what is a server-side module and how to develop one. Importantly, these examples show that any programming language is possible.
Then see the guide to Running a local FOLIO system for guidance to establish your local FOLIO work environment.
The Commence a module - structure and configuration guide explains a consistent layout for a back-end module, together with the guidelines to Create a new FOLIO module and do initial setup.
The FOLIO Spring-Way defines the module’s development approach for FOLIO platform using the Spring framework and Spring projects.
- The FOLIO Spring Base is a library (jar) that contains the basic functionality and main dependencies required for development of FOLIO modules using Spring framework (also known as “Spring Way”). APIs and DTOs are defined using the OpenAPI (OAS) v 3.0 files and schemas, then controller interfaces and DTOs will be generated by the openapi-generator-maven-plugin.
- The mod-spring-template provides a template that should be used to create new Spring based modules for the FOLIO platform.
- There is also a folio-sample-modules/mod-spring-petstore which is based on that template.
The RAML Module Builder (RMB) framework, is a special FOLIO module that abstracts much functionality and enables the developer to focus on implementing business functions. Define the APIs and objects in RAML files and schema files, then the RMB generates code and provides tools to help implement the module. It also exposes a Vert.x based runtime library.
- The mod-rmb-template provides a Maven archetype to commence an RMB-based module.
The folio-vertx-lib is a lightweight FOLIO module development library for Vert.x that supports OpenAPI (OAS) rather than RAML specification. It is the recommended library for developers wishing to develop FOLIO modules with Vert.x (as RAML Module Builder is no longer being extended with new functionality and is in maintenance mode only). The library has a self-contained example and explanation.
Conduct cross-module joins via their APIs.
The Primer for OpenAPI (OAS) and JSON Schema provides some guidance.