What's New?
Last updated
Last updated
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.
It is now more straightforward to register a custom Hyper client. 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.
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.
This client now returns more accurate status codes for 502 Bad Gateway
and 408 Request Timeout
responses.
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 timeout
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 isServerError
or isError
.
If you were previously checking specifically for 504
status codes or isServerError
for timed out requests, you need to now either check for 408
status codes, isClientError
, or the more general isError
.
Add head
and options
shortcut methods.
Add xml
support and an asXML
method to set the body format and Content-Type
header.
Add adobe@2023
to testing matrix.
Dropped adobe@2016
support.
Correctly handle cases when the body
is a string and format is JSON
.
Add a debug
method to see what the HTTP client generates.
HyperHttpClientInterface
now requires a debug
method.
Do not prepend the base url when a full url is passed.
Add resolveUrls
and encodeUrl
properties to the memento.
Correctly set the encodeUrl
property when cloning a request.
Update README for builder initWith
headers losing Content-Type
.
Fix HyperBuilder
example in the docs.
Allow adding multiple query params with the same key.
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:
Convert array values correctly when sending form fields
Add a workaround for CommandBox not having the box:asyncManager
injection DSL.
Add async requests using ColdBox's AsyncManager.
Provide more useful error than cfhttp when throwOnErrors
is enabled.
Provide mementos for HyperRequest and HyperResponse instances.
Capture statusText and provide a status convenience string.
Add MIT License file
Use processState
over announce
until CommandBox can update its interceptorService
.
Add forwardHeaders
shortcut method.
Allow for default values in getHeader
.
Add helper methods for checking for specific status codes:
Allowing attaching file uploads.
Support WireBox outside of ColdBox.
Include response data as detail in DeserializeJsonException
.
Add clone
to quickly copy HyperRequest
instances.
Add execution time to HyperResponse
instances.
Dropped support for ColdBox 5.
Add support for NTLM authentication.
Include getFullURL
method in docs.
Fixed typo of Bulider
to Builder
.
Add withoutEncodingUrl
flag.
Do not fail fast on cron job actions on CI.
Update fetch-depth for tests and release actions on CI.
Attempt to skip committing back changes on CI.
Add matrix and cron testing on CI.
Use better GitHub token on CI
Add workaround for boolean
values in query strings.
Add certificate auth.
Use the previous host for redirect if redirect does not include a full URL.
Add resolveUrls
flag.
Use OpenJDK instead of OracleJDK on CI.
Allow for pluggable HTTP Clients that follow the HyperHttpClientInterface
. (Clients do not need to use the implements
keyword.)
Avoid double encoding using cfhttpparam
.
Remove Lucee 4.5 support from docs. (Support was dropped in v2.0.0)
Add adobe@2018
support to CI builds.
Dropped support for lucee@4.5
.
Add throwOnError
flag.
Use 504 Gateway Timeout
for incomplete responses.
Include equal signs in query param values.
Add when
helper to execute conditions without breaking chaining.
Add clear
method to reset HyperRequest instances.
Add configurable timeout
.
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
Migrate to coldbox-modules organization on GitHub.
Update box.json
description.
Enable CommandBox Semantic Release on CI.
Deprecated Method | Replacement Method |
---|---|
Store module in .