Пользовательское свойство в LRS & Tincan API
Можно ли добавить пользовательское свойство в "Актер" через Tincan API, чтобы сохранить его в LRS.
Подробно: я использую Learning Locker в качестве системы LRS и Tincan API Drupal, и как известно, в записи оператора есть 3 объекта, сохраненных в LRS, которые являются [Actor - Verb - Object], теперь у Actor есть 2 свойства, которые являются [name - mbox], и я попытался изменить модуль Tincan, добавив пользовательское свойство, которое является [страна], но LRS API "Learning Locker" отказался. так что есть специальный способ для дополнительных свойств, чтобы я мог фильтровать с более поздними, как [возраст - пол - страна] или его стандартный API строго по определенным атрибутам
{
"version": "1.0.0",
"actor": {
"objectType": "Agent",
"name": "Creative User",
"mbox": "mailto:register@example.com"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/action_custom_verb",
"display": {
"en-US": "action_custom_verb"
}
},
"object": {
"objectType": "Activity",
"id": "http://localhost",
"definition": {
"name": {
"en-US": "master"
}
}
},
"authority": {
"objectType": "Agent",
"name": "drupaladmin",
"mbox": "mailto:hello@learninglocker.net"
},
"stored": "2017-02-06T16:58:23.625600+00:00",
"timestamp": "2017-02-06T16:58:23.625600+00:00",
"id": "9c1d552b-c825-4403-9c89-a9381b8d5320"
}
1 ответ
Стандартный API является строгим в отношении добавления свойств. И объекты агента / группы (какие есть actor
может содержать) не включают в себя возможность расширить свои возможности.
Дополнительные точки данных могут быть добавлены в специальные свойства, называемые extensions
которые доступны в нескольких местах в объектах оператора. В этом случае вы можете использовать расширения в context
стоимость имущества, чтобы включить вашу дополнительную информацию о actor
, Вы можете сделать это как отдельные дискретные фрагменты информации, где у каждого есть свой собственный ключ расширения, или вы можете использовать один ключ, который использует объект в качестве значения и включает отдельные фрагменты информации в свойствах этого объекта. Для получения дополнительной информации о расширениях см.: http://tincanapi.com/deep-dive-extensions/
Обратите внимание, что ключи расширений не фильтруются через /statements
потоковый ресурс, поэтому любые запросы, основанные на их ключе или значении, должны выполняться другими средствами, кроме API спецификации.