У меня есть потребитель инструментов LTI (LMS), использующий LTI1p0, который отправит запрос службе, которая в настоящее время не использует LTI. Поэтому я пишу реализацию оболочки NodeJS, которая будет
- получать от LTI Tool Consumer,
- сопоставить его с API службы,
- отправить в сервис,
- затем проанализируйте ответ службы в формате поставщика инструментов LTI,
- и, наконец, отправьте его обратно потребителю инструмента.
У службы есть обязательное поле с именем groups
, которое ожидает массив таких групповых объектов:
group: [ {
id: <string>, // id of the group
name: <string>, // name of the group
role: <string> // role of the user
}]
Этот параметр точно не существует в руководстве по внедрению LTI1p0. Поэтому я хочу знать, как лучше всего отправлять информацию типа массива (groups
в моем случае) через LTI.
Просматривая документы, я обнаружил несколько потенциальных параметров, которые я мог бы использовать:
1. Параметры контекста
В руководстве упоминается, что «тип контекста будет« группа »», и есть параметры для context_id
, context_type
, context_title
. Проблема будет в том, что это вариант только для одной группы на запрос / пользователя.
2. Пользовательские параметры
Я мог бы создать специальный параметр и назвать его custom_groups
, что кажется простым, но я не уверен, как значение должно выглядеть для массивов? Как строковый объект json?
custom_groups = "{"id":123,"name":"Group Name","role":"Instructor"}, {"id":124,"name":"Group Name 2","role":"Creator"}"
Для параметра roles
можно отправить список строк, разделенных запятыми (т.е. roles= Instructor, Creator,..
), но в моем случае этого было бы недостаточно.
Я все еще новичок в LTI, поэтому приношу свои извинения, если это явно очевидно.
Примечание. И LTI Consumer (LMS), и сервис являются внешними, т. е. я не могу их изменить, а предоставляю только оболочку. Я могу сообщить потребителю инструмента о возможных настраиваемых параметрах, но опять же не знаю, какой формат запрашивать. Кроме того, к концу года служба может реализовать LTI, поэтому в идеале оболочку можно было бы удалить, и потребителю инструментов не пришлось бы сильно менять.
Любая помощь очень ценится!