Blog

ColdBox Relax v3.0 Released

Jon Clausen April 11, 2017

Spread the word

Jon Clausen

April 11, 2017

Spread the word


Share your thoughts

Coldbox Relax LogoColdBox Relax Moldule v3.0 has been officially released, which includes native support for the OpenAPI/Swagger specification, in addition to a variety of feature upgrades and enhancements.

Version 3.0 makes the OpenAPI/Swagger specification the default documentation format for describing your APIs, while deprecating the Relax programmatic DSL ( scheduled EOL is v4.0 ). In addition, the release includes a complete overhaul of the user interface and Relax API Test Tool, to provide users with a seamless experience for documenting, viewing, testing and exporting in a variety of formats.

The OpenAPI specification offers a convenient and portable way to describe your API, its requirements, parameters, and data conventions. You may also choose to use this to describe your API in the form of HTTP OPTIONS responses to fulfill CORS requirements or to allow rich hypermedia documentation for your consumers.

What can you do with Relax?

  • Define your ReSTful services via the OpenAPI/Swagger JSON syntax
  • Use the "Relaxer" API Test tool to test your RESTful web service enpoints
  • Use the "Relaxer" API Test too to test against ANY RESTful service
  • Keep a history of your latest Relaxed test requests so you can rebuild your request and test again
  • Programmatic DSL for configuration of your RESTful services (Deprecated as of v2.3)

Relax also allows you to import an OpenAPI/Swagger JSON specification in to your defined apiResources directory, export normalized schema (JSON) for other services and also four export formats:

  • HTML
  • PDF
  • WikiText
  • TRAC Format

Markdown export is also planned for an upcoming minor release.

By convention, Relax looks for supported formats in the following order (note that the top-level file shares the name of the parent directory):

  1. myResourceDirectory/myapi/myapi.json - JSON OpenAPI schema
  2. myResourceDirectory/myapi/myapi.yaml - YAML OpenAPI schema
  3. myResourceDirectory/myapi/Relax.cfc - Relax programmatic DSL (deprecated)

To install Relax, use CommandBox:

box install relax

Relax comes with three example API's which are configured by default:

  • Swagger Petstore - The swagger Petstore API example, which is described using the OpenAPI/Swagger specification
  • Forgebox API - Version 2 of the Forgebox API, which is described through the, now-deprecated, RelaxDSL specification.
  • MyAPI - Another example, using the RelaxDSL specification.

Both Forgebox and MyAPI may be exported from within the interface in to a normalized Swagger JSON schema, while the Petstore example provides and complete example of using a nested file structure to contain different parts of your API documentation.

If you'd like to play with Relax, here are a few lines of script, which will create an app skeleton, install the module, and start a server. Simply navigate to the /relax path, once your browser opens, to view the new changes.

mkdir relaxtest && cd relaxtest
box coldbox create app name=relaxTest
box install relax
box server start --rewritesEnable

or from within the CommandBox shell:

mkdir relaxtest --cd
coldbox create app name=relaxTest
install relax
server start --rewritesEnable

For additional information on relax, including installation and advanced configuration, view the official documentation here.

Add Your Comment

Recent Entries

12 Days of BoxLang - Day 4: TestBox

12 Days of BoxLang - Day 4: TestBox

Today we’re celebrating one of the most exciting new additions to the BoxLang ecosystem:

the TestBox BoxLang CLI Runner — a fast, native way to run your TestBox tests directly through the BoxLang Runtime. ⚡

No server required. No CommandBox needed. Just pure, ultra-fast BoxLang-powered testing from the command lineon Windows, Mac, and Linux.

If you’re building modern applications with BoxLang — web apps, CLIs, serverless functions, Android apps, or OS-level utilities — this new feature gives you a unified, flexible testing workflow you can run anywhere.

Victor Campos
Victor Campos
December 13, 2025
12 days of BoxLang - Day 3: SocketBox!

12 days of BoxLang - Day 3: SocketBox!

As BoxLang continues evolving into a modern, high-performance, JVM-based runtime, real-time communication becomes essential for the applications we all want to build: dashboards, collaboration tools, notifications, live feeds, multiplayer features, and more.

That’s where SocketBox steps in — the WebSocket upgrade listener built to work seamlessly with CommandBox and the BoxLang MiniServer. ⚡

Today, for Day 3, we’re highlighting how SocketBox supercharges BoxLang development by giving you fast, flexible, and framework-agnostic WebSocket capabilities.

Maria Jose Herrera
Maria Jose Herrera
December 12, 2025
12 Days of BoxLang - Day 2: CommandBox

12 Days of BoxLang - Day 2: CommandBox

BoxLang + CommandBox: The Enterprise Engine Behind Your Deployments

For Day 2 of our 12 Days of Christmas series, we’re diving into one of the most powerful parts of the BoxLang ecosystem: CommandBox the defacto enterprise servlet deployment platform for BoxLang.

If BoxLang is the language powering your applications, CommandBox is the engine room behind it all. ⚙️

Victor Campos
Victor Campos
December 11, 2025