xAPI States
xAPI State HTTP Interface
The table below describes the routes that the HTTP interface provides, all of the URLs are relative to http://www.example.org/data/xAPI where http://www.example.org is the URL of your Learning Locker instance. To access this interface, you must additionally supply your Basic Auth details with each request in the Authorization
header. Your Basic Auth details can be found under Settings > Clients. Go to the xAPI HTTP interface documentation to see the rest of the xAPI routes.
Route | Description |
---|---|
Creates or overwrites a state document. | |
Creates or merges a state document. | |
Retrieves a single state document or multiple state identifiers. | |
Deletes a single state document or multiple state documents. |
<iframe src="https://player.vimeo.com/video/168960742" width="80%" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style="padding-left: 15%;"></iframe>
PUT /activities/state
This route allows you to create a single state document if it doesn't exist or overwrite an existing state document if it does exist. The route has 3 required URL parameters, an activityId
(an IRI representing the activity), an agent
(a JSON encoded object representing the agent the state belongs to), and a stateId
(a string representing an identifier for the state). There is also an optional URL parameter for the registration
. A request to this route would look something like the request below.
PUT http://www.example.org/data/xAPI/activities/state?activityId=http%3A%2F%2Fwww.example.org%2Factivity&agent=%7B%22mbox%22%3A%20%22mailto%3Atest%40example.org%22%7D&stateId=example_state_id®istration=361cd8ef-0f6a-40d2-81f2-b988865f640c
Authorization: YOUR_BASIC_AUTH
X-Experience-API-Version: 1.0.3
Content-Type: application/json; charset=utf-8
{
"example_key": "example_value"
}
This route returns a 204 response with no content when the state document is successfully created/overwritten, like the example response below.
HTTP/1.1 204 NO CONTENT
X-Experience-API-Version: 1.0.3
For more information, view the PUT /activities/state route in the xAPI specification.
POST /activities/state
This route allows you to create a single state document if it doesn't exist or merge an existing state document if it does exist. The route allows the same URL parameters as the PUT /activities/state route. The state document is merged when the state document exists, the existing state document is a JSON encoded object, and the posted state document is a JSON encoded object. When the two JSON encoded documents are merged, only the top-level properties are merged. The example requests below demonstrate merging state documents. For more information, view the POST /activities/state route in the xAPI specification.
POST Initial State
To POST an initial state, the request should be something like the request below.
POST http://www.example.org/data/xAPI/activities/state?activityId=http%3A%2F%2Fwww.example.org%2Factivity&agent=%7B%22mbox%22%3A%20%22mailto%3Atest%40example.org%22%7D&stateId=example_state_id®istration=361cd8ef-0f6a-40d2-81f2-b988865f640c
Authorization: YOUR_BASIC_AUTH
X-Experience-API-Version: 1.0.3
Content-Type: application/json; charset=utf-8
{
"key_to_keep": "value_to_keep",
"key_to_change": "value_before_change"
}
The response to the request above would be something similar to the response below.
POST Merge State
To POST a state for merging, the request should be something like the request below.
The response to the request above would be something similar to the response below.
GET Merged State
To GET the merged state, the request should be something like the request below.
The response to the request above would be something similar to the response below.
GET /activities/state
This route allows you to retrieve a single state document or multiple state identifiers. If the stateId
URL parameter is set, it will retrieve a single state document with the state identifier, otherwise it will retrieve many state identifiers. For more information, view the GET /activities/state route in the xAPI specification.
Retrieve Single State Document
The route allows the same URL parameters as the PUT /activities/state route. A request to this route should be similar to the request below.
The response to the request above would be something similar to the response below. If the state document cannot be found, a 404 response will be returned instead of a 200.
Retrieve Many State Identifiers
The route allows the same URL parameters as the PUT /activities/state route except for the stateId
parameter and with the addition of the optional since
parameter. The since
URL parameter is an ISO timestamp that ensures only state identifiers stored since the timestamp (exclusive) are returned. A request to this route should be similar to the request below.
The response to the request above would be something similar to the response below, where the JSON encoded response body contains an array of state identifiers that match the URL parameters.
DELETE /activities/state
This route allows you to delete a single state document or multiple state documents. If the stateId
URL parameter is set, it will delete a single state document with the state identifier, otherwise it will delete many state documents. For more information, view the DELETE /activities/state route in the xAPI specification.
Delete Single State Document
The route allows the same URL parameters as the PUT /activities/state route. A request to this route should be similar to the request below.
The response to the request above would be something similar to the response below. If the state document cannot be found, a 404 response will be returned instead of a 204.
Delete Many State Documents
The route allows the same URL parameters as the PUT /activities/state route except for the stateId
parameter. A request to this route should be similar to the request below.
The response to the request above would be something similar to the response below.
Learning Locker and the Squirrel logo are trademark of Learning Pool 2020 | Learning Locker is licensed under GPL 3.0.