Version 3.3.0
New Features
Module Versioning (Beta)
Modules that contain your backend logic are now versionizable. That provides you the possibility to work with different module revisions within your application at the same time.
The huge advantage is that you can switch between two versions of the same module within your application without replacing the old working module code.
That helps you to update your modules in an easier and more focused way.
The new Module Versioning also includes some features and changes that ensure ApiOmat stability.
So make sure you get informed about the following topics:
-
module upload via Maven replaces Ant-Upload
-
usedModule dependency handling via Maven
-
migration of unversioned Modules
-
unversioned persistence of data object and object reference
-
SDK support for Module Versioning
To learn more details about the Module Versioning features visit Module Versioning.
SDK Out-of-Beta & Deprecations
The TypeScript SDK was stabilized, so it's now more robust and finally pulled out of its beta state.
Also some of the SDKs are now deprecated. You can find their future replacements in the following table:
SDK Deprecations |
Replacement |
Objective-C SDK |
Swift |
JavaScript SDK |
TypeScript |
Furthermore some of the deprecated methods and functionalities were removed especially in sections like C# SDK, Swift SDK and NativeModules.
For a detailed list of all deprecations visit Deprecations and Migration.
New Service: Dispatcher (Gateway)
The Dispatcher service is an API gateway providing a way to route Application Programming Interfaces.
API Gateways are used to improved the communication between a client application and several microservice instances.
Advantages:
-
Helps determining the locations of service instances
-
Insulates client applications from internal microservices structure
-
Simplifies client applications by moving logic for calling multiple services to API gateway
-
Reduces the amount of client requests when retrieving data from multiple services → fewer requests means less overhead
To learn more about the setup and usage of the Dispatcher service visit [Dispatcher] Installation.
Breaking changes
Breaking changes may require changes in configuration, apps, or native module code after an ApiOmat upgrade to ensure system stability.
NativeModule, |
A lot of deprecated methods were removed in NativeModule Code and SDK Code. |
Module upload via Ant removed |
The upload of native modules via Ant was completely replaced by a new Maven Plugin upload process in favor of the new Module Versioning feature and ApiOmat stability. Visit the introduction of the Module Versioning to see the new module upload process via Maven. |
JDBC Modules |
Since Yambas 3.3 all object references are stored as collections to be able to support Module Versioning. Unfortunatly all JDBC Modules needed some minor changes to be able to operate with those reference collections especially when single references were used in past. The newest JDBC module 3.3 and all its derivatives like MSSQL, MySQL and OracleDb already includes those necessary changes. |
Remarkable changes
Remarkable changes do not affect system stability after ApiOmat upgrade, but may require changes in configuration, apps, or modules in the next development cycle.
Query Parsing |
The query parser is more strict for queries containing a dot and an unknown prefix. Wrong Queries like "this.id" or "unknownAttribute.id" do not work anymore and should be corrected. This only affects wrongly crafted queries. |
Referenced Static Data |
Please use the new endpoints with module version as the old ones behave differently now and should only be used as a fallback! Click here for further information! Also, reading or manipulating static data (files/images) that are linked to a data models attribute, providing a wrong attribute name or type will from now on return the error code MODEL_NOT_FOUND (804), |
C# SQLite SDK |
|
Android SQLite SDK |
|
TypeScript SDK |
|
Swift SDK |
|
Create/Update MetaModelAttribute |
It is no longer possible to create a reference attribute and pass a regular expression, minLength or maxLength patterns. Before, those three parameters were ignored silently when creating a reference attribute.
|
Update Routines (when updating from versions prior to ApiOmat 3.0.1) |
The update routines prior to ApiOmat 3.0.1 have been removed. If you're running a version below 3.0.1 and you're planning to update to 3.3.0 (f.i. your server is currently running ApiOmat 2.6), you should upgrade to 3.1 or 3.2 first and then upgrade to 3.3.0 to ensure that all routines will be executed. |
All changes in the current and previous versions can be found at the root page.
All deprecations and their removal date can be found at Deprecations and Migration.
Changelog