LogoLogo
7.3.0
7.3.0
  • Introduction
  • What's New?
  • Upgrade Guide
  • Getting Started
    • Requirements
    • Installation
  • Making Requests
    • HyperBuilder
    • HyperRequest
    • HyperResponse
  • Customizing Hyper
    • Hyper Clients
    • Custom HTTP Clients
      • CfhttpHttpClient
  • Testing
    • Faking Requests
  • ForgeBox
  • GitHub
Powered by GitBook
On this page
  • 7.3.0
  • Retrying Failed Requests
  • Default User-Agent
  • Reset Fake Request Counts and Sequences
  • 7.2.0
  • Cookies
  • 7.1.0
  • Fake Requests
  • Custom Hyper Clients
  • 7.0.0
  • CFHttp HTTP Client
  • Breaking Changes
  • 6.1.0
  • 6.0.0
  • Breaking Changes
  • 5.0.1
  • 5.0.0
  • Breaking Changes
  • 4.0.3
  • 4.0.2
  • 4.0.1
  • 4.0.0
  • Breaking Changes
  • 3.6.2
  • 3.6.1
  • 3.6.0
  • 3.5.0
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • HyperRequest
  • HyperResponse
  • 3.3.0
  • 3.2.1
  • 3.2.0
  • 3.1.0
  • 3.0.0
  • Breaking Changes
  • 2.3.11
  • 2.3.10
  • 2.3.9
  • 2.3.8
  • 2.3.7
  • 2.3.6
  • 2.3.5
  • 2.3.4
  • 2.3.1
  • 2.3.0
  • 2.2.1
  • 2.2.0
  • 2.1.1
  • 2.1.0
  • 2.0.2
  • 2.0.1
  • 2.0.0
  • Breaking Changes
  • 1.15.0
  • 1.14.5
  • 1.14.4
  • 1.14.0 – 1.0.0
  • New Features
  • Bug Fixes
  • Other

What's New?

PreviousIntroductionNextUpgrade Guide

Last updated 1 year ago

7.3.0

Retrying Failed Requests

You can now configure a HyperRequest to automatically retry failed requests.

Default User-Agent

Hyper now sends a default User-Agent of HyperCFML/#versionNumber#.

Reset Fake Request Counts and Sequences

Hyper can now reset the fake request counts and sequences without losing the fake configuration using the method.

7.2.0

Cookies

Hyper can now and . See the and docs for details.

7.1.0

Fake Requests

Hyper now has the ability to fake requests and return fake responses as a result. This is perfect for testing scenarios where you don't actually want to make an HTTP request.

Custom Hyper Clients

// config/WireBox.cfc
component {

   // ...
   
   function afterApsectsLoad() {
       injector.getInstance( "HyperBuilder@hyper" )
           .setBaseUrl( "https://api.github.com" )
           .asJson()
           .withHeaders( {
               "Authorization": coldbox.getUtil().getSystemSetting( "GITHUB_TOKEN" )
           } )
           .registerAs( "GitHubClient" );
   }

}

This is a welcome improvement as the init arguments do not exactly match the method names. Also, for defaults like requestCallbacks, responseCallbacks, or even queryParams, passing in arrays of functions or arrays or structs is not as straightforward as calling the related methods. Now, you can use the Hyper methods you are familiar with when registering your custom Hyper clients.

Putting the registration code in afterAspectsLoad is required so Hyper can be loaded and available for injection.

7.0.0

CFHttp HTTP Client

This client now returns more accurate status codes for 502 Bad Gateway and 408 Request Timeout responses.

Breaking Changes

6.1.0

6.0.0

  • Add xml support and an asXML method to set the body format and Content-Type header.

  • Add adobe@2023 to testing matrix.

Breaking Changes

  • Dropped adobe@2016 support.

5.0.1

Correctly handle cases when the body is a string and format is JSON.

5.0.0

Add a debug method to see what the HTTP client generates.

Breaking Changes

HyperHttpClientInterface now requires a debug method.

/**
 * Return a struct of information showing how the client will execute the HyperRequest.
 * This will be used by a developer to debug any differences between the generated
 * request values and the expected request values.
 *
 * @req     The HyperRequest to debug.
 *
 * @returns A struct of information detailing how the client would execute the HyperRequest.
 */
public struct function debug( required HyperRequest req );

4.0.3

  • Do not prepend the base url when a full url is passed.

  • Correctly set the encodeUrl property when cloning a request.

4.0.2

Update README for builder initWith headers losing Content-Type.

4.0.1

Fix HyperBuilder example in the docs.

4.0.0

Allow adding multiple query params with the same key.

Breaking Changes

Previously, query params were stored as a struct. Some APIs expect multiple values for the same query param name to be passed as separate arguments. Hyper now stores the query params as an array and provides new methods for interacting with query params:

The following methods still exist, but now interact with arrays of query param structs instead of a simple struct.

The following methods have been deprecated:

Deprecated Method
Replacement Method

3.6.2

Convert array values correctly when sending form fields

3.6.1

Add a workaround for CommandBox not having the box:asyncManager injection DSL.

3.6.0

3.5.0

3.4.2

Add MIT License file

3.4.1

Use processState over announce until CommandBox can update its interceptorService.

3.4.0

HyperRequest

HyperResponse

  • Add helper methods for checking for specific status codes:

3.3.0

3.2.1

Support WireBox outside of ColdBox.

3.2.0

Include response data as detail in DeserializeJsonException.

3.1.0

3.0.0

Add execution time to HyperResponse instances.

Breaking Changes

Dropped support for ColdBox 5.

2.3.11

2.3.10

Fixed typo of Bulider to Builder.

2.3.9

2.3.8

Do not fail fast on cron job actions on CI.

2.3.7

Update fetch-depth for tests and release actions on CI.

2.3.6

Attempt to skip committing back changes on CI.

2.3.5

Add matrix and cron testing on CI.

2.3.4

Use better GitHub token on CI

2.3.1

Add workaround for boolean values in query strings.

2.3.0

2.2.1

Use the previous host for redirect if redirect does not include a full URL.

2.2.0

2.1.1

  • Use OpenJDK instead of OracleJDK on CI.

2.1.0

2.0.2

2.0.1

2.0.0

  • Add adobe@2018 support to CI builds.

Breaking Changes

Dropped support for lucee@4.5.

1.15.0

1.14.5

Use 504 Gateway Timeout for incomplete responses.

1.14.4

Include equal signs in query param values.

1.14.0 – 1.0.0

New Features

Bug Fixes

  • Fix for Lucee 4 compatibility on LinkedHashMaps and keyArray.

  • Preserve case in header names.

  • Preserve case for query parameters.

  • Serialize both params from the url and set on the HyperRequest instance.

  • Default to UTF-8 charset if none is present in the response.

  • Fix withHeaders and withQueryParams for Lucee compatibility.

  • Only map HyperBuilder as a singleton in WireBox

Other

  • Update box.json description.

It is now more straightforward to register a . Inside your config/WireBox.cfc in an afterAspectsLoad method, you can get a reference to a HyperBuilder, configure it as you would for a request, and then call the registerAs method passing in your desired WireBox alias.

Previously, these responses were returned as 504 Gateway Timeout responses. Hyper now normalizes the responses from the different CFML engines into a consistent response. 502 Bad Gateway is returned instead of 504 Gateway Timeout for invalid hosts. 408 Request Timeout is returned if the request takes longer than the configured value.

If you were previously checking specifically for 504 status codes for bad hosts, you need to now either check for 502 status codes or use a more general method, like or .

If you were previously checking specifically for 504 status codes or for timed out requests, you need to now either check for 408 status codes, , or the more general .

Add and shortcut methods.

Remove default Content-Type header. You must set this or use a format helper, such as .

Add resolveUrls and encodeUrl properties to the .

Add async requests using ColdBox's .

Provide more useful error than cfhttp when is enabled.

Provide mementos for and instances.

Capture and provide a convenience string.

Add shortcut method.

Allow for default values in .

Allowing file uploads.

Add to quickly copy HyperRequest instances.

Add interceptors and for lifecycle events.

Add support for .

Include method in docs.

Add flag.

Add auth.

Add flag.

Store module in .

Allow for pluggable that follow the HyperHttpClientInterface. (Clients do not need to use the implements keyword.)

Avoid double encoding using .

Remove Lucee 4.5 support from docs. (Support was dropped in )

Do not include and unless they have values.

Add flag.

Add helper to execute conditions without breaking chaining.

Add method to reset HyperRequest instances.

Add configurable .

Migrate to organization on GitHub.

Enable on CI.

Faking Requests
custom Hyper client
AsyncManager
HTTP Clients
cfhttpparam
coldbox-modules
CommandBox Semantic Release
v2.0.0
HyperRequest
HyperResponse
isServerError
isError
isServerError
isClientError
isError
statusText
status
getHeader
isOk
isUnauthorized
isForbidden
isNotFound
parse the returned cookies from a response
resetFakes
HyperResponse
See the HyperRequest docs for details.
send cookies with a request
timeout
head
options
manually
asJson
memento
getQueryParamByName
getAllQueryParamsByName
withQueryParams
appendQueryParam
appendQueryParams
hasQueryParam
getQueryParams
setQueryParams
throwOnErrors
HyperRequest
forwardHeaders
attaching
clone
local
callbacks
NTLM authentication
getFullURL
withoutEncodingUrl
certificate
resolveUrls
username
password
throwOnError
when
clear
timeout
getQueryParam
getQueryParamByName
ForgeBox Storage