Как создать xAPI statement
Здесь вы узнаете, как создавать xAPI statement.

Если вы будете создавать xAPI statement, то, пожалуйста, постарайтесь писать код самостоятельно. Это обеспечит лучшее понимание и вы получите максимальную пользу).
Создание структуры утверждения
По своей сути xAPI statement является объектом JSON (JSON = JavaScript Object Notation). Это означает, что для создания оператора xAPI вам нужно знать, как создать объект JSON. Если у вас нет опыта программирования, то ничего страшного. JSON очень удобен для чтения и легок для понимания.

Для начала откройте текстовый редактор (я использую atom) и создайте новый файл «xapi-statement.js». Затем создайте объект JSON, он выглядит так:
{

}
Вы создали фреймворк для объекта JSON! Теперь его нужно заполнить.

Утверждение включает в себя три обязательных свойства: Actor, Verb и Object. С другими свойствами, вы можете ознакомиться здесь.

Объект JSON содержит несколько пар ключ / значение. Их можно рассмотреть на примере словаря: ключ - это слово, а значение - определение этого слова.

Итак, давайте добавим свойства (ключи): Actor, Verb и Object. Сначала введите имя свойства в кавычках, сразу после него добавьте двоеточие, а затем значение свойства. Если существует более 1 свойства, то они разделяются запятой.

Поскольку вы еще не знаете, как определить каждое свойство, то оставьте значения пустыми. Ваш код должен выглядеть так:
{
  "actor":   ,
  "verb":   ,
  "object": 
}
Свойства операторов xAPI также являются объектами. Используя то, что вы узнали о создании объектов JSON, обновите свой код следующим образом:
{

  "actor": {

  },
  "verb": {

  },
  "object": {

  }	
}
Отлично! Теперь вы знакомы со структурой утверждения xAPI.
Свойство Actor
Значение Actor говорит нам кто совершает действие. Actor состоит из объекта с двумя свойствами: name и mbox. Свойство name связано с именем пользователя, а свойство mbox с адресом его электронной почты.

Важно :
  • когда вы используете строки в качестве значений, то их необходимо заключать в кавычки. Если же вы используете число или переменную, то кавычки не нужны.
  • при добавлении адреса электронной почты сначала необходимо добавить "mailto: ". Этим мы сообщаем LRS тип данных email.

Ваш код должен выглядеть следующим образом:
{
  "actor": {
    "name": "Nikita",
    "mbox": "mailto:nikita@gmail.com" 
  },
  "verb": {

  },
  "object": {

  }	
}
Свойство Verb
Значение Verb говорит нам какое действие совершает пользователь. Verb состоит из объекта с двумя свойствами: id и display.

Значение id - это уникальный идентификатор (URI), обычно в форме URL-адреса, к которому другие могут получить доступ, чтобы узнать о выбранном вами глаголе. Лучше использовать Server xAPI Vocab, чтобы найти URI для нужного вам глагола.

Важно: можно использовать любой URL, который вы хотите для
идентификатора глагола, например, http://www.example.com/nameOfVerb, но лучше этого не делать, так как он ведет к несуществующему сайту, что может стать причиной ошибки.

Вы можете выбрать любой Verb, который вы хотите. Для примера будем использовать completed (URI: http://adlnet.gov/expapi/verbs/completed):
"id":"http://adlnet.gov/expapi/verbs/completed"
Второе свойство объекта Verb - display. Здесь вы описываете глагол в удобном для вас формате.

Важно: свойство display включает в себя собственную пару ключ / значение. Ключ - это код языка , а значение - это сам глагол на нужном вам языке. Добавьте следующую строку кода под свойством глагола id:
"display": { "en-US": "completed" }
Важно:
  • не забудьте добавить запятую после id
  • вы можете написать на русском { "ru": "завершил" }

Оператор xAPI должен выглядеть так:
{
  "actor": {
    "name": "Nikita",
    "mbox": "mailto:nikita@gmail.com" 
  },
  "verb": {
    "id":"http://adlnet.gov/expapi/verbs/completed",
    "display": { "en-US": "completed" }
  },
  "object": {

  }	
}
Свойство Object (объекта)
Значение object характеризует объект, над которым совершено действие.
Свойство object состоит из объекта с двумя основными свойствами: id и definition.

Подобно id глагола, id объекта является URI. Здесь вы можете использовать свой собственный домен, но убедитесь, что вы используете разные URI для каждого уникального действия. Например, объектом будет первый модуль курса (URL: http://example/xapi/firstmodule).

Значение definition объекта включает в себя другой объект с именем name. Подобно свойству display объекта verb, значением свойства name является объект, который включает в себя код языка в качестве ключа и слово/фразу в качестве значения. В общем, свойство object выглядит так:
"object": {
  "id": "http://example/xapi/firstmodule",
  "definition": {
    "name": { "en-US": "first module" }
  }
}
Вот и все! Как только вы добавьте этот код к оператору xAPI и он будет готов к отправке. Не забудьте сохранить файл. Код должен выглядеть так:
{
  "actor": {
    "name": "Nikita",
    "mbox": "mailto:nikita@gmail.com" 
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/completed",
    "display": { "en-US": "completed" }
  },
  "object": {
    "id": "http://example/xapi/firstmodule",
    "definition": {
      "name": { "en-US": "first module" }
    }
  }	
}