Added smart handling of HEAD request.
Exported some internal features of WSF_REQUEST and WSF_RESPONSE to respectively WSF_REQUEST_EXPORTER and WSF_RESPONSE_EXPORTER
The documentation is built only on demand.
A mapping entry can be hidden for the documentation
One can change the status code when building itself the WSF_ROUTER_SELF_DOCUMENTATION_MESSAGE
Added WSF_ROUTER_MAPPING.associated_resource
Added WSF_ROUTER_SELF_DOCUMENTATION_HANDLER and WSF_ROUTER_SELF_DOCUMENTATION_MESSAGE to provide a self documentation for WSF_ROUTER (for now, only HTML)
kept `key' as redirection, and also string as obsolete redirection.
Router: provide a way to pass the request methods without using manifest string, thanks to WSF_ROUTER_METHODS
so instead of using manifest array or manifest strings, just create an instance of WSF_ROUTER_METHODS
for convenience, WSF_ROUTER provides a few `methods_...' returning prebuilt WSF_ROUTER_METHODS objects
Improved code related to unicode handling in URL, and parameters (before the framework was doing too much)
Better design to set the WSF_REQUEST.path_parameters
especially handle the case where the request goes trought more than one route (could be the case when using WSF_ROUTING_HANDLER)
Added WSF_REQUEST.path_parameter (a_name): detachable WSF_VALUE
- fill path_parameters using `import_raw_path_parameters"
when executing the route
- reset to previous value with reset_path_parameters (..),
just in case the request is executed via severals routes.
Added WSF_RESPONSE.put_character
Renamed WGI_OUTPUT_STREAM.put_character_8 as put_character to follow style of put_string (and not put_string_8)
Refactored the WSF_DEFAULT_SERVICE_LAUNCHER
Added WSF_DEFAULT_SERVICE to be more user friendly
Splitted the wsf/default/ libraries to have wsf/connector/... and being able to handle more than one connector in the same application
Replaced any internal call to WGI_RESPONSE.write () by the associated implementation (i.e output.put_string (...) )
Added WGI_OUTPUT_STREAM.put_crlf
Renamed WSF_RESPONSE.put_response (a_message) as `send (a_message)'
WSF_RESPONSE_MESSAGE.send_to (res) is now exported only to WSF_RESPONSE
The descendant has to implement the function
response (ctx: C; req: WSF_REQUEST): WSF_RESPONSE_MESSAGE
Added related features and class in WSF_ROUTER to be able to use agent easily.
- removed path_parameter
- added `item' to include WSF_REQUEST.item
- marked obsolete `parameter'
The goal is to remove confusion, remove URI_TEMPLATE specific `path_parameter'
and provide a way to use ctx.item (..) to also include meta variable, query, form, ... items
- fixed issue related to `ready_for_reading' now use the `try_...' variant
- for now Nino does not support persistent connection, then we have to respond with "Connection: close"
REQUEST_FILE_SYSTEM_HANDLER:
- added not_found_handler and access_denied_handler, so that the user can customize related response
WSF_REQUEST and WSF_VALUE:
- modified how uploaded file are handled, fixed various issues, and added WSF_UPLOADED_FILE (it is a WSF_VALUE)
WSF_VALUE:
- added change_name (a_name: like name)
- added url_encoded_name to other WSF_values
WSF_REQUEST:
- added `destroy' to perform end of request cleaning (such as deleting temp uploaded files)
- renamed `raw_post_data_recorded' as `raw_input_data_recorded', and related feature
- do not store the RAW_POST_DATA in meta variable anymore, but in WSF_REQUEST.raw_input_data is asked
Added WSF_HTML_PAGE_RESPONSE to help user
WSF_REPONSE.redirect_... now use "temp_redirect" as default
instead of "moved_permanently" which is specific usage
Removed many obsolete features.
transfer encoding: Chunked.
Added a new method to retrieve_data independently if the
transfer is chunked or not.
Updated ORDER_HANLDER to use this new feature.
Sync with Jocelyn repo