Я использую Learning Locker (Learning Record Store). Мне удалось вставить в него операторы через REST API. Но получить от него выписки мне не удалось. Как предварительно сформировать запрос к операторам? РЕСТ API?
Как выполнить запрос по жестяным операторам?
Ответы (2)
Я использовал библиотеку tinCanPhp. Вот как вы устанавливаете соединение с базой данных Learning Locker и запрашиваете ее в PHP. Например:
$lrs = new TinCan\RemoteLRS(
'endpoint/public/data/xAPI/',
'1.0.1',
'username',
'key'
);
$actor = new TinCan\Agent(
[ 'mbox' => 'mailto:[email protected]' ]
);
$verb = new TinCan\Verb(
[ 'id' => 'http://adlnet.gov/expapi/verbs/progressed' ]
);
$activity = new TinCan\Activity(
[ 'id' => 'http://game.t-shirt' ]
);
$statement = new TinCan\Statement(
[
'actor' => $actor,
'verb' => $verb,
'object' => $activity,
]
);
//get All Actor activity by his unique id
function getAllActorActivity($actorUri){
global $lrs;
$actor = new TinCan\Agent(
[ 'mbox' => $actorUri ]//actorUri should look like this 'mailto:[email protected]'
);
$answer=$lrs->queryStatements(['agent' => $actor]);
return $answer;
}
Если это через javascript, вы можете использовать ADL xAPI Wrapper. Это упрощает взаимодействие с LRS... https://github.com/adlnet/xAPIWrapper#get-statements
В общем, вы делаете запрос GET для конечной точки/операторов... сначала попробуйте именно это и посмотрите, получите ли вы ответ json с "утверждениями" и свойством "больше". Затем, если это сработает, вы можете сузить результаты с помощью фильтров. Подробности и опции смотрите в спецификации. https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#stmtapiget
попробуйте эту команду curl.. она должна вернуть результат оператора, хотя и из ADL LRS...
curl --user tom:1234 ПОЛУЧИТЬ https://lrs.adlnet.gov/xapi/statements