LRS&中的定制财产Tincan API

时间:2017-02-06 17:11:50

标签: drupal-7 tin-can-api lrs

是否可以通过Tincan API将自定义属性添加到“Actor”以保存它 在LRS。

详情: 我使用Learning Locker作为LRS系统& Drupal的Tincan API&因为它已知在LRS中保存的语句记录中有3个对象,它们是[Actor - Verb - Object] 现在这个Actor有2个属性是[name - mbox] 我试图修改Tincan模块以添加[country]的自定义属性,但LRS API“L​​earning Locker”拒绝了它。 那么是否有一种自定义方式来添加其他属性,以便我可以在以后过滤,如[age - gender - country]或其定义属性的标准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 个答案:

答案 0 :(得分:1)

标准API对于添加属性是严格的。代理/组对象(actor可以包含的对象)不包括扩展其范围的能力。

可以在名为extensions的特殊属性中添加其他数据点,这些属性在语句对象的几个位置可用。在这种情况下,您可以使用context属性值中的扩展名来包含有关actor的其他信息。您可以将这些信息作为单个离散信息来执行,其中每个信息都有自己的扩展键,或者您可以使用一个使用对象作为其值的单个键,并在该对象的属性中包含单独的信息。有关扩展程序的详细信息,请参阅:http://tincanapi.com/deep-dive-extensions/

请注意,扩展密钥不能通过/statements流资源过滤,因此任何基于其密钥或值的查询都必须通过规范的API之外的其他方式完成。