是否可以通过Tincan API将自定义属性添加到“Actor”以保存它 在LRS。
详情: 我使用Learning Locker作为LRS系统& Drupal的Tincan API&因为它已知在LRS中保存的语句记录中有3个对象,它们是[Actor - Verb - Object] 现在这个Actor有2个属性是[name - mbox] 我试图修改Tincan模块以添加[country]的自定义属性,但LRS API“Learning 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"
}
答案 0 :(得分:1)
标准API对于添加属性是严格的。代理/组对象(actor
可以包含的对象)不包括扩展其范围的能力。
可以在名为extensions
的特殊属性中添加其他数据点,这些属性在语句对象的几个位置可用。在这种情况下,您可以使用context
属性值中的扩展名来包含有关actor
的其他信息。您可以将这些信息作为单个离散信息来执行,其中每个信息都有自己的扩展键,或者您可以使用一个使用对象作为其值的单个键,并在该对象的属性中包含单独的信息。有关扩展程序的详细信息,请参阅:http://tincanapi.com/deep-dive-extensions/
请注意,扩展密钥不能通过/statements
流资源过滤,因此任何基于其密钥或值的查询都必须通过规范的API之外的其他方式完成。