You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Proxy to serve binaries such as images from an API that returns base64 encoded files inside a JSON structure.
Introduction
Currently a proof of concept with the plan to address performance issues and export a route that can be mounted in a parent application.
API
apiBinaryProxy(config)
Returns a route handler that can be used by Express.
Where config is of the shape {apiUrl, propertyNames, assumeMimeType}:
apiUrl: The API url uses sprintf format (see below)
propertyNames: An object of the shape {payload, extension, mime, filename}, containing property names that are expected in the upstream API. Each property will default to the property name if not supplied (i.e. payload defaults to "payload"):
payload: the base64 encoded file
extension: the file extension, this could be with or without an initial .
mime: the mime type of the file if available
filename: the full filename if available
assumeMimeType: the mime type to use if it can't be identified from the upstream API. If not set, will return 404 for unknown mime types.
forwardHeaders: Whether to forward incoming headers to the upstream API. Defaults to false.
forwardQueryString: Whether to forward query string to the upstream API. Defaults to true.
In the example above, %1$s will be replaced by any path after '/files' (req.path).
Sprintf
The API url uses sprintf format, for more information see the sprintf-js readme. This is to enable further configuration options to be added in future and to support alternative uses such as: