The current HEAD of WSAPI has some nifty new features:
WSAPI has always encouraged the use of isolation between applications, with the Xavante and FastCGI launchers using Rings to put each WSAPI application/script in its own separate Lua state. This is great for avoiding applications stepping on each others toes with misuse of globals, but can be a performance hit if your applications are doing unbuffered responses.
WSAPI 1.3 will include the isolated option to these launchers, set to
trueby default, to control whether you want isolation or not. Just edit your
falseand all your applications will run in the same Lua state.
WSAPI’s standard request processing (
wsapi.request) duplicates what CGILua used to do in case there is more than one field with the same name: creates a list with all the values of this field. WSAPI 1.3 adds an overwrite option to
wsapi.requestthat makes the value of the field be the last value that appears, so all fields are always strings. If you want even more control, a builder option lets you provide your own behavior. A builder is a
function (params, field, value)that is called for each field/value pair, with the table of parameters up to that moment, and mutates this table to do what it wants.
The WSAPI launchers try to detect whether the web server uses
SCRIPT_FILENAMEas the path to the script, but this is not foolproof, so there is now an option vars that lets you specify the order that WSAPI should check these variables, with the default being to check
There are also some fixes for non-critical bugs, that is why the next version is going to be WSAPI 1.3 and not WSAPI 1.2.1. I will be away for a week starting tomorrow, so I pushed the release to the week of 23-27 of November. What is missing right now is the implementation of the builder option that I outlined above, and changes to the documentation; right now these changes are documented in my exchanges on the Kepler mailing list.