Hi all,
First of all, great job RE: TinCan & xAPI, thanks! Awesome!
I have a question/suggestion related to API Versioning, from LRS point of view.
Background:Run time environment: Apache/PHP/MySQL.
For the purpose of handling 0.9 AND 1.x (separate code base), I was going to use Apache rewrite, based on incoming X-Experience-API-Version header (or the lack of it, for 0.9).
Upon detecting the version, I do an Apache mod-rewrite/redirect to proper code base.
However, "because of IE & Cross Origin", according to specification (v1.0.1, chapter 7.8), there is a special syntax, where headers are NOT part of the HTTP request, but part of POST data (including the version header).
Now, since Apache does not have access to POST (at least at .htaccess level), there is no way to reliably determine the client version based purely on the request, preventing this otherwise easy mechanic to manage different API versions.
Suggestion for packaged APsFrom LRS point of view, at least in the context of E-Learning systems, and again, at least here at Docebo, TinCan's are deployed as packages, following http://projecttincan.com/tincan.xsd schema definition.
My Suggestion is to add xAPI version in tincan.xsd and if not provided, all APs to be considered as version < 1.0.
This will allow LMS/LRS to store API version along with activity providers upon deployment and later, during AP launch, to specify proper LRS endpoint, based on that very version.
Regards,
Plamen Petkov
http://www.docebo.com