API
  • API Index
  • Batch API
  • Content Negotiation
  • Dynamic Paths
  • Hierarchy API
  • List API
  • Quick Reference
  • Time Series API
  • Views
    • Configuration
  • Overview
  • Application Configuration
  • Documentation Configuration
  • Spec Configuration
    • Features
  • API Testing
  • Asynchronous Processing
  • Cassandra Time-Series Engine
  • Cassandra Integration
  • Default Controller Customisation
  • Documentation
  • Geospatial Filtering
  • Model Documentation
  • PostgreSQL Integration
    • Tutorials
  • Step-by-Step Guide
  • Archetype Setup
  • Logging
  • Prometheus
  • Sentry Logging
    • UI Customisation
  • UI Customisation
  • SASS Build Chain
  • Shared Layout
  • API Documentation
  • Model Documentation
  • Results
  • sapi-nt v 2.0.1

    Sapi-nt 2.0.0 upgrade guide

    Migrating your API from sapi-nt version 1.x.y to 2.0.0 introduces some breaking changes and should be handled with care.

    This document is meant to assist you in migrating your application to sapi-nt 2.0.0.

    Minimal language requirements

    java: 21
    kotlin: 2.0.0
    

    These are controlled via java.version and kotlin.version maven properties.

    Javax deprecation

    Spring boot 3 migrated from the use of javax to jakarta, therefore you should always be using jakarta.servlet:jakarta.servlet-api and not javax.servlet:javax.servlet-api, if you aren’t relying on our starter POM (com.epimorphics.sapi-nt-base).

    As well as dependency coordinate changes, Jakarta EE now uses jakarta packages rather than javax. Once you’ve upgraded to sapi-nt 2.0.0 you may find that import statements in your project need to be updated.

    Pebble package change

    The pebble templates have changed the package from com.mitchellbosecke to io.pebbletemplates. If you have any pebble extensions in your local implementation, then note that the imports statements need to reflect that.

    Ant path matcher deprecation

    In spring boot 3 the ant path matcher has been deprecated, forbidding matching after * or ** (e.g. /id/**/batch).

    In sapi-nt 2.0.0, this is enabled by providing spring.mvc.pathmatch.matching-strategy=ant_path_matcher spring application property. It is set in the base application.properties under sapi-nt-lib. If you would like to specify additional properties using a .properties file then make sure you use the application.properties from sapi-nt-lib as a starting point (see here) because a new application.properties file in your project will completely override it.

    Logging

    Logging dependencies have been updated as well, and you should follow the new logging documentation to have the logging work as desired. See documentation here.