Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
C++DelphiNewsRAD Server

RAD Server Gets a Boost in RAD Studio 12.3

RAD Server Whats new 123

RAD Studio 12.3 brings several improvements to RAD Server that address common pain points and add new functionality. Let’s take a look at what’s new.

Consistent Date/Time Formats Across Requests

One issue that’s now resolved is the inconsistency in date/time formats between GET and LIST requests. RAD Studio 12.3 introduces roFDDateTimeFormat, a boolean variable flag in the EMS.DatasetResource unit that gives you control over date/time format standardization.

When enabled (the default value), date/time values in GET, PUT, and POST JSON responses use the FireDAC JSON serialization format. If you prefer to keep the previous behaviour, you can simply set the value of this new flag to false.

Improved Security for Configuration Files

Security gets a nice upgrade with the option to avoid storing plain text values for MasterSecret and AppSecret in the emsserver.ini file. Instead, these sensitive values can now be stored hashed using md5. 

The EMSDevServer interface now includes an “Obfuscate Keys” button that converts plain text MasterSecret and AppSecret values to the hashed format automatically, reducing the risk of credential exposure.

RADServerConsole

Instance-Wide Custom Variables

A particularly useful addition is support for instance-wide custom variables. These can be stored in the emsserver.ini [Variables] section and accessed throughout your application.

Consider a real-world scenario where you’re deploying the same RAD Server application across development, testing, and production environments. Each environment might need different database connection strings, file paths, or API endpoints.

Here’s how you could set up environment-specific variables in your emsserver.ini:

Then, in your custom resource code, you can access these values:

The TEMSVariablesService.ExpandString method lets you process strings containing variables:

A special feature is that the PathTemplate property of TEMSFileResource components automatically expands variables from the emsserver.ini file without needing to call ExpandString:

When the server runs, it will automatically replace $(FileStoragePath) with the actual value from your configuration, making it easy to create environment-specific file paths.

This feature simplifies configuration management across environments and makes your RAD Server applications more portable and easier to maintain.

Hide Unwanted Endpoints

The new [EndpointHide] attribute lets you selectively hide endpoints that you don’t want to expose. This is especially valuable when working with TEMSDataSetResource and TEMSFileResource components. For example:

This allows you to restrict which operations are allowed on a resource, improving both security and API clarity.

Improved UTF-8 Support in RAD Server and WebStencils

RAD Studio 12.3 significantly improves how RAD Server handles UTF-8 characters. This enhancement extends to WebStencils as well, ensuring proper support for international character sets in your applications.

Speaking of WebStencils, this release also introduces two additional improvements worth noting:

  • Access to nested classes and objects using a straightforward dot notation syntax: @MyObject.SubObject.PropertyName
  • More flexible processing of the “@” symbol when it’s unrelated to WebStencils directives, eliminating the need to double it in headers and similar contexts

For example, if you have a customer object with address information, you can now directly access nested properties in your templates:

Previously, you would have needed to flatten these objects or use more complex workarounds. This new dot notation makes templates cleaner and more intuitive to write.

These WebStencils enhancements complement the RAD Server improvements, providing better tools for building complete server solutions.

All these RAD Server improvements in version 12.3 focus on practical issues that developers face in real-world applications. The changes to date handling, security features, and endpoint management directly address feedback from our community, making the platform even more robust for building modern REST APIs and web applications. 

See What's New in 12.2 Athens See What's New in 12.3 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

About author

Pre-sales consultant engineer at Embarcadero inc.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES