ColdBox Relax
Search
K

Relax Programmatic DSL (Deprecated)

Relax Programmatic DSL

Deprecated as of Relax 2.3, but still available, the Relax DSL configuration object which is mixed into a simple Relax CFC Definition Object so you can use all the methods in this CFC to define RESTful web services. All functions can be concatenated to create a programmatic DSL. This DSL is exportable to OpenAPI formats.

Example Using the Forgebox API:

this.relax = {
// Service Title
title = "ForgeBox IO",
// Service Description
description = "This API powers ForgeBox",
// Service entry point, can be a single string or name value pairs to denote tiers
//entryPoint = "http://www.myapi.com",
entryPoint = {
"production" : "https://forgebox.io/api/v1",
"staging" : "http://forgebox.stg.ortussolutions.com/api/v1",
"development" : "http://localhost:9095/api/v1"
},
// Does it have extension detection via ColdBox
extensionDetection = true,
// Valid format extensions
validExtensions = "json",
// Does it throw exceptions when invalid extensions are detected
throwOnInvalidExtension = false
};
/************************************** GLOBAL PARAMS + HEADERS *********************************************/
// Global API Headers
globalHeader( name="x-app-token", description="The secret application token", required=true, type="string" );
/************************************** RESOURCES *********************************************/
// ECHO
resource( pattern="/echo", handler="Main", action="echo" )
.description( "Simple API echo command" )
.defaultFormat( "json" )
.methods( "GET" );

Configuration

The relaxed service information. From here you will define the RESTful service endpoints, extension detection, valid formats, and more.

Arguments

Argument
Type
Required
Default
Description
title
any
Yes
---
The title of the RESTful service
description
any
Yes
---
The description of the RESTful service
entryPoint
any
Yes
---
A simple URL or a structure of entry points
extensionDetection
any
No
true
Will this API do extension detection
validExtensions
any
No
json,jsont,xml,html,htm,rss
The valid extensions to detect
The valid extensions to detec
any
No
false
Throw on invalid extensions or not

Global Headers

Add a global header to the relax definition

Arguments

Argument
Type
Required
Default
Description
name
any
Yes
---
The name of the header
description
any
No
The description of the header
required
any
No
false
Is the header required or not
default
any
No
The default value of this header
type
any
No
string
The type of the incoming header

Global Params

Add a global parameter to the relax definition

Arguments

Argument
Type
Required
Default
Description
name
any
Yes
---
The name of the parameter
description
any
No
The description of the parameter
required
any
No
false
Is the parameter required or not
default
any
No
The default value of this parameter
type
any
No
string
The type of the incoming parameter