Пользовательское свойство в 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 спецификации.

Другие вопросы по тегам