Skip to content

Application overview

Cezary Kluczyński edited this page Nov 2, 2017 · 7 revisions

STAPI is written in Java (production code) and Groovy (tests), with some frontend (around 1% of total codebase) written in TypeScript, HTML, and LESS.

  • Java version is 1.8, but there is a plan to migrate to Java 9, as soon as it is possible.
  • Groovy version is Groovy 2.4.x.
  • TypeScript version is 2.5.x.

Architecture overwiev

STAPI is a monolithic application, meaning that there is only one WAR file to be built from sourced.

This application can be run in two ways, with or without ETL process. Without ETL enabled, is simply acts as a server for REST and SOAP endpoints, and the underlying database. With ETL enabled, it updates database schema to the latest version and run the enabled ETL steps. ETL can be turned on and off with configuration properties.

Gradle modules

Gradle modules are used to provide some degree of separation between different parts of the application.

The modules are:

  • util - where some utils and constants are keept, as well as some abstract tests.
  • model (depends on util) - models, repositories, metamodel, and DTOs used to query repositories.
  • contract (depends on util) - where Swaggers specs and SOAP contracts are located.
  • client (depends on contract) - basic Java client for STAPI.
  • sources (depends on model) - contains connectors to external sources, like MediaWiki and WordPress.
  • etl (depends on sources) - here are are the processors that fills database tables.
  • server (depends on etl and sources) - here is the Spring Boot application, and REST and SOAP endpoints.
Clone this wiki locally