Changelog
ambiorix 2.2.1
Changes
- When rendering via {htmltools}, add character encoding as first item in the HTML document, as per the html standard
Bug Fixes
- Fix bug causing app to crash at startup when no explicit routes are defined on the Ambiorix instance, pull/123
ambiorix 2.2.0
New Features
- Enable nesting of Routers, pull/73.
- Enable full support for htmltools tags, no need for html templates, pull/78, pull/92.
- Add
engine()method set custom renderers, pull/66. - Add
set_error()method to set a global error handler, pull/64. - Add a default error handler, pull/88.
Changes
- Resolve port to bind server on in a specific order, pull/75.
- Switch to {yyjsonr} for faster serialization & de-serialization, pull/100.
- Switch to {webutils} for faster parsing of multipart & urlencoded request bodies, pull/100.
- Continually process requests using
httpuv::service()instead of a while loop, pull/98. - Remove syntactic sugar to improve backwards compatibility with R <= 4.1.0, pull/113.
- Deprecate
create_dockerfile(), pull/116
Bug Fixes
- Fix bug hindering change of the max body size of a request, pull/69.
- Fix issue causing pattern matching in routes to throw error, pull/82, pull/110.
- Fix bug on error condition messaging when promise evaluation fails, pull/88.
ambiorix 2.1.1
- Added
cache_templatesmethod to cache templates in memory. - Added
use_html_templateto usehtmltools::htmlTemplateas rendering. - Custom renderers (
as_renderer) are now more robust. - Add
limitfield to protect against large uploads. - Fix issue with setting custom websocket handler #62.
- Add
enginemethod on router to set custom renderers (usedeprecated for custom renderers).
ambiorix 2.1.0
Breaking
Responsemethodstatusrenamed toset_status(this is to allow havingstatusas a field).
Changes
- Improve rendering of templates. No longer force render data as JSON if using an HTML template.
- Allow nested partials, their path must be relative.
- Added
jobjfunction to serialise objects to JSON inrender. - Allow passing
hostandporttostart()method. - Added
hostandportactive bindings. - Move internal
is_runningfield to private. - Added
statusactive binding onResponse. - Added
get_header,set_header, andset_headerstoResponse. - Allow adding multiple cookies to the request.
- Add
parseCookieJavaScript helper function to JavaScript file. - Allow customising the cookie parser with
as_cookie_parser. - Allow adding cookie value preprocessors with
as_cookie_preprocessor. - Arguments to
cookiemethod onResponsetake options. - Added
clear_cookiemethod toResponse - Cookies of the same name overwrite rather than duplicate.
- Added
content_*family of convenience function to set content type headers. - Export
serialise - Fixed issue where wrong path pattern was matched.
- Catch error if no route is specified.
- Do not force body to character fixes #44
- Do no force content type on response fixes #45
- Deprecate passing headers to
responseorsend-like functions, useheadermethod. - Deprecate
set_headerin favour ofheadermethod. - Added family of
header_content*methods to easily setContent-Type. - Request
HEADERSis always alist. - Deprecate
setandgeton Response and Request, this is no longer needed the environments are no longer locked;res$myVar <- 2L. - Deprecate
statusargument of responses, the active binding should be used instead;res$status <- 404L. - Partially improved route matching.
- Allow customising the path to pattern converter.
- Added
get_headermethod to the retrieve a specific method. - Fix htmlwidget response.
- Added
image,pngandjpegmethods toResponseto serve images. - Added
ggplot2method toResponse. - Allow
usemethod onRouterthese will only be applied to paths of said router. - Added
parse_*methods to theRequest. - Cookie
pathdefaults to/. - Fix default serialiser
- More robust
parser_*methods and fuctions. - Empty cookie is empty list instead of empty string.
- Added
mockRequestto for testing purposes. - Fixed
port,host, andwebsocketactive bindings. - Add ability to create custom renderer, see jader, and pugger.
ambiorix 2.0.0
Breaking change
The render and send_file methods of the Response object now
expect the full path to the template, with the file extension.
Where one would before res$render("home"), now one
res$render("templates/home.html").
Similarly, in said templates, to import partials,
use full path relative to the template in which the partial is used
e.g.: from [! header.html !] to [! partials/header.html !].
Changes
- Middleware no longer uses global environment that may cause side effect across sessions.
setandgetmethods on request store in environment to allow locking variables when usingset.- Better instructions for deploying as a service.
- Remove the deprecated
Loggerclass, see log package. - Pass
hostto free port fetch function. - Add hidden option to force change port for upcoming related service.
- Internals of calls reworked to share response object. This is how it should always have worked, it allows middlewares to updatre request and response to be used/passed to subsequent calls.
- Middleware check for run has been fixed.
- Document and export the
Responseclass. - Added pre-hook to response.
- Document and export
Requestclass. setandgetmethods onRequestandResponseaccept character strings asname.- Use R 4.1.0 + add
Depends - Allow passing a list of functions to
useto easily se multiple middlewares at once. rendermethod correctly sets theContent-typeheader.headersmethod more robust to avoid duplicated headers.- Add
token_createfunction. - Add
cookiemethod to theResponseclass to easily set cookies. - Add
cookiefield toRequestto hold parsedHTTP_COOKIE. - Properly URL decode query string values.
- Add
sendfmethod toResponseclass to pre-process request withsprintf. - Silently read templates, no more EOF warnings.
- More informative print messages for classes.
- Add post render hooks to response.
- Added
get_headersmethod toResponseto retrieve currently set headers. - Unlock objects to allow adding new elements to
ResponseandRequest. - Upgrade websocket protocol if on HTTPS protocol.
- Improved the default log.
logargument of ambiorix constructor now defaults toTRUE.- Added
mdmethod toResponseto render.mdfiles. - Added
set_log*functions to allow using custom logs.
ambiorix 1.0.2
- Reaches CRAN
- Removed
create_ambiorix, see ambiorix.generator. - Removed
add_template, see ambiorix.generator. - Deprecate the
Loggerclass in favour of the log package. - Fixed
parse_json#36
ambiorix 1.0.1
- Deprecate
create_ambiorix: moving to ambiorix.generator package. - Deprecate
add_template: moving to ambiorix.generator package. - Added
allmethod to define route and handler for all methodsGET,POST,PUT,DELETE, andPATCH. - The
usemethod now accepts a function which is run every time the server receives a request. - Add
setandgetto request to add and retrieve params (namely with the middleware) - Fix
check_installed, see #33
ambiorix 1.0.0
Initial version.