Comments (4)
curl 'http://dev.experience.at/agents/profile?agent=%7B%22mbox%22%3A%22mailto%3Ajasmine%40brightcookie.com.au%22%2C%22name%22%3A%22Jasmine%20Brightcookie%22%7D&profileId=Jasmine-1-18%2F8%2F2015%2012%3A04%3A10%20pm' -X POST -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.5' -H 'Authorization: Basic MWxRdjN3eHB6WkUwSG9uN2l6STdYeEVhT1VLRUpEOE43WTNZd3NlVDpiVGY3TWdZUXdlNkV3Rjd3WjZJTzY1ZXRsVENrNnFTRlFFTHp6Z3RH' -H 'Content-Length: 59' -H 'Content-Type: application/json; charset=UTF-8' -H 'Host: dev.experience.at' -H 'Origin: http://devel.bo' -H 'Referer: http://devel.bo/lxJasmine/Jasmine/SpecRunner.Agents.html' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0' -H 'X-Experience-API-Version: 1.0.1'
(Header 'X-Experience-API-Version: 1.0.1')
returns:
409 Conflict
, {"error_message":"There was a conflict. Check the current state of the resource and set the \"If-Match \" header with the current ETag to resolve the conflict."}
1.0.3: PUT, POST or DELETE
1.0.2: PUT only
1.0.1: PUT only
from lxhive.
I agree with points 1. and 2., however not with 3.
You can send any headers you want with the extra legacy layer as well. I know however, that some activity providers (namely Storyline) don't do this and as such are violating the spec.
In this case...I think it'd be best if there'd be some sort of extra middleware layer for such cases.
from lxhive.
Defaulting to a minimal supported version is problematic. Why? Because when we have i.e. versions 1.0 and 1.1 available, what if a request without a version comes in and we default to 1.0, but that request is actually a 1.1 request?
Providing a version is an important part of the xAPI spec.
See https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#client-requirements-3
Also, in https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#client-requirements-4 (1.0.1) it specifies that "A Client using either Agent Profile API or Activity Profile API MUST include the If-Match header or the If-None-Match header.".
from lxhive.
My fault, I had to re-re-read the spec file. The spec actually says "SHOULD*" (so a SHOULD, which will probably become a must in 1.1.0) for POST and DELETE in 1.0.3. Fixed in #28.
Regarding the version header, I believe that Storyline sends this one way or another - either as a header or as a POST parameter using the legacy layer as other also LRS'es reject requests without a version.
Closing this issue.
from lxhive.
Related Issues (20)
- Does it support CMI5 ? HOT 3
- make all header names case insensitive HOT 3
- add full support HEAD requests HOT 1
- Installation problem requires ext-mongo >=0.9.0 HOT 1
- composer warning: Package league/url is abandoned
- Resolve TODO in scr/Storage/Adapter/Mongo/OAuth.php HOT 2
- Config oauth unused properties HOT 2
- composer install - php 7.0 incompatibility (dev dependency) HOT 3
- alternate request (GET>POST) syntax support fore "more" url HOT 1
- Storage activities trim trailing slash from IRL
- temporary GET / request
- ping DB via a public endpoint HOT 1
- ExtendedQuery, pagination issue wit until_id
- Abandoned package league/url HOT 1
- Default expiry time is incorrect for temporary access tokens HOT 1
- Expose Custom headers not working HOT 1
- Change lxHive organisation and ownership HOT 1
- lxHive error launch in Moodle plugin (https://github.com/davidpesce/moodle-mod_tincanlaunch)
- /statements endpoint includes "voiding statements"
- PUT to /activities/state responds with "Cannot merge!"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lxhive.