Home  /  Resources  /  Blog  /  RPG API Express Version 3.5.0: Lightning-Fast JSON Composition and More!

RPG API Express Version 3.5.0: Lightning-Fast JSON Composition and More!

Introducing RXS 3.5.0

We’re happy to announce that RPG API Express (RXS) Version 3.5.0 is here! With the introduction of the new BLDCMP command, RXS developers can compose JSON significantly faster. We’ll touch on several other features and enhancements that make this version an excellent upgrade to your RPG-based API operations. Let’s delve deeper into why these changes matter.

BLDCMP: A Big Change in JSON Composition

In addition to several other code generation enhancements, BLDCMP is the latest addition to RPG API Express, helping developers build JSON quickly using 100% RPG.

How Does it Work?

It’s simple! BLDCMP takes a sample JSON file from the IFS and uses it to generate RPG code that can produce an identical JSON document.

How Does BLDCMP Help You Build JSON Quickly?

  1. Accelerating Development – BLDCMP is designed to help you build out complete JSON composition subroutines quickly with only a sample JSON file.
  2. Minimizing Errors – You can not only develop JSON faster; you can do it with fewer errors. BLDCMP automates your code production, thereby reducing keystrokes, and ultimately mistakes and errors.
  3. Simplifying Program Complexity – JSON documents can be intricate; BLDCMP simplifies them by generating a solid code foundation, which you can then modify to fit more complex scenarios, such as nested fields.

Practical Applications

Consider a challenging scenario where your development team is tasked with building an application that integrates with a new payment processing API, and you have only a couple days to finish the job. Worse yet, this API requires a huge JSON payload consisting of multiple nested objects and arrays for each transaction. Suffice to say, manually coding this in RPG would be a tedious, error-prone process.

Instead of starting from scratch with the traditional JSON composition subprocedures, your team decides to use BLDCMP to kickstart the process. It couldn’t be easier – all you end up having to do is…

  1. Choose a JSON input stream file
  2. Choose whether you want the generated code to be free-format or mixed-format RPG

… and that’s it! Your team has a foundation for building JSON to communicate with an API.

Other Significant Updates

New HTTP Communication Features

RXS 3.5.0 enhances your HTTP development with a variety of new, powerful features, including large / complex JSON Web Token (JWT) handling, and the ability to request HTTP compression via gzip for API responses:

  • JWT – The new HeaderAuthScheme and HeaderAuthCredentials subfields in RXS_TransmitDS_t expand RXS_Transmit()‘s authentication capabilities, allowing for credentials or tokens up to 8K in length. This enhancement is particularly beneficial for supporting complex JWT tokens in Bearer authentication schemes.
  • HTTP compression via gzip – RXS_Transmit() now includes a HeaderAcceptEncoding subfield in RXS_TransmitDS_t, enabling the automatic request and decoding of gzip encoded response data. This feature is set as the default behavior and aims to improve performance when interacting with web APIs that support gzip encoding.

Some other HTTP-related features and enhancements from this RXS release include:

  • Added support for unlimited timeouts when performing API calls
  • RXS_Transmit() now allows output to be directed to both a response field and a response IFS file
  • Improved IFS log file output to properly display chunked encoding
  • New RXSCB constants to make it easier to reference standard HTTP status codes

Encryption, Hashing, and HMAC Support

RPG API Express now features the new RXS_HMAC() subprocedure, elevating its capabilities in terms of data integrity and security. HMAC (Hash-based Message Authentication Code) is particularly important when it comes to generating or verifying secure tokens in your applications. HMAC provides a robust method for authenticating your data, effectively safeguarding it against unauthorized alterations and access. By supporting a variety of algorithms such as SHA1, SHA256, SHA384, SHA512, and MD5, RXS_HMAC() offers developers the flexibility to choose the best cryptographic hash function to fit their security requirements.

Example Programs

We’ve updated our example programs to now include both traditional/mixed and fully free format RPG, maximizing developer flexibility. In addition to format updates, these programs have also been revised to meet our team’s current recommended best practices. We have also revised the example programs’ names for clarity based on the new fixed and free formatting options. See the changelog for more information.

… And More!

While we’ve highlighted some of the major updates in RXS 3.5.0, it’s also worth mentioning that this release is also packed with other valuable enhancements and fixes aimed at improving your overall development experience. In fact, many of these updates were implemented based directly on customer feedback.

What’s New and Improved?

Offering Web Services/APIs: The CRTRXSSVR command now supports 5-digit port numbers up to 65535; it also includes new *HTTP and *HTTPS options for setting its port number to ports 80 and 443 respectively. Additionally, RXS Router now includes an -aspgrp flag for swapping the ASP Group prior to any library list changes or program calls.

Conversion APIs: Improvements have been made in the Base64 and Base64URL decoding features of RXS_Convert(), most of which help with issues around supporting arbitrary whitespace.

Other Changes: This release includes other improvements, such as:

  • The DSPMCHINF command which shows hardware details now also includes the partition UUID
  • The APYLIC command used to apply product license keys no longer interactively prompts when run as part of batch jobs to better support automation

RXS 3.5.0 in a Nutshell

RXS Version 3.5.0 isn’t merely a set of new features; it’s a full-fledged upgrade to your favorite RPG development toolkit! BLDCMP in particular is bound to be a staple in your future JSON composition. Combined with all the other updates, RXS continues to evolve as a comprehensive solution for your API development needs.

To find out more and to get started with these new features, check out our updated documentation site. Your journey towards more efficient IBM i development starts here!

Table of Contents