Активности Берлоги (0.7)

Download OpenAPI specification:

Сервис активностей и артефактов игр Берлоги.

v0.7

v0.6

v0.5

  • Добавлены административные операции импорта и чтения списка контекстов.

v0.2

Для передачи активности теперь обязательно нужно указывать версию приложения.

application

Операции, предназначенные для приложений

Список активностей

Если какие-то из указанных активностей не будут найдены, то они просто будут отсутствовать в ответе.

Authorizations:
BerlogaJWT
query Parameters
ids
required
Array of strings <uuid> [ 1 .. 50 ] items [ items <uuid > ]

Идентификаторы активностей

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Запись активностей

Каждая из активностей опционально может иметь метрики и артефакт.

Запись активностей доступна в коротком и расширенном форматах.

Короткий формат

Передается только массив активностей. Если они ссылаются на артефакты, эти артефакты должны быть предварительно загружены. Ответ на такой запрос тоже включает в себя только массив с активностями.

Расширенный формат

В этом формате передается объект, который должен содержать активности в массиве, аналогичном короткому формату, и опционально может включать в себя еще артефакты для создания. В ответе на такой запрос, аналогично, возвращается объект, содержащий те же ключи. В возвращаемом массиве артефактов будут ссылки, по которым эти артефакты должны быть загружены.

Ссылки имеют ограниченный срок жизни. Если данные артефакта не были загружены в рамках этого периода, то нужно запросить новую ссылку.

До тех пор, пока указанные в активности артефакты не будут загружены, эта активность с ее баллами не будет учитываться в прогрессе традиции игрока.

После загрузки данных артефакта по полученной ссылке, нужно подтвердить что загрузка завершена.

Authorizations:
BerlogaJWT
header Parameters
X-Forwarded-For
required
string
Request Body schema: application/json
required
One of
[ 1 .. 20 ] items
Array ([ 1 .. 20 ] items)
app_version
required
string (ActivityAppVersion)

Версия приложения, в которой была произведена активность.

context_id
required
string <uuid> (ContextID)

Идентификатор контекста активности.

artefact_id
string <uuid> (ArtefactID)

Идентификатор артефакта.

object [ 1 .. 30 ] properties

Responses

Request samples

Content type
application/json
Example
[ ]

Response samples

Content type
application/json
Example
[ ]

Балл за активности

Обязательно указание либо tradition_id, либо context_ids; эти параметры взаимоисключающие.

Authorizations:
BerlogaJWTServiceKey
query Parameters
tradition_id
integer <int32>

Идентификатор традиции

context_ids
Array of strings <uuid> (ContextID) [ 1 .. 50 ] items [ items <uuid > ]

Список идентификаторов контекстов

player_ids
Array of strings <uuid> (PlayerID) [ 1 .. 50 ] items [ items <uuid > ]

Список игроков, активности которых попадут в выборку. Параметр доступен только при использовании авторизации ServiceKey.

Responses

Response samples

Content type
application/json
0
0

Загрузка артефакта

Артефакт предварительно загружается для передачи его в активности.

Authorizations:
BerlogaJWT
header Parameters
X-Artefact-Type
required
integer <int32>

ID типа артефакта из справочника.

X-Checksum
required
string

SHA-1 контрольная сумма

X-Forwarded-For
required
string
Request Body schema: application/*
required

Содержимое артефакта. Поддерживаемые типы:

  • application/cyberiada-graphml
  • application/json
  • application/xml
string <binary>

Responses

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Запрос новой ссылки для загрузки

Ссылка для загрузки данных артефактом имеет ограниченный срок жизни. После его завершения, если данные артефакта еще не были успешно загружены, нужно запрашивать новую ссылку. Загрузку данных по ссылке нужно выполнять методом PUT.

Authorizations:
BerlogaJWT
path Parameters
artefact_id
required
string <uuid> (ArtefactID)

Идентификатор артефакта.

Responses

Response samples

Content type
application/json
"string"

Подтверждение загрузки артефакта

Authorizations:
BerlogaJWT
path Parameters
artefact_id
required
string <uuid> (ArtefactID)

Идентификатор артефакта.

Responses

Response samples

Content type
application/json
{
  • "error_message": "string"
}

Справочник типов артефактов

Responses

Response samples

Content type
application/json
[
  • {
    }
]

service

Операции, предназначенные для сервисов

Список активностей с метриками

При использовании аутентификации TalentOAuth требуется наличие у пользователя прав на выполнение этой операции.

Необходимо указать параметры выбора контекстов. Это могут быть либо идентификаторы конкретных контекстов context_ids. Либо набор фильтров context_property и/или ID приложения application_id.

Authorizations:
ServiceKeyTalentOAuth
query Parameters
offset
integer <int32>
Default: 0
limit
integer <int32> <= 1000
Default: 100
descend
boolean
Default: false

Сортировка результатов в обратном порядке, возвращая сначала самые новые активности.

application_id
string <uuid>

ID приложения для фильтрации контекстов.

context_property
Array of strings [ 1 .. 3 ] items

Свойства контекстов приложения. Заполняются в формате имени и значения объединенных пробелом (кодируется как + или %20). На каждое свойство допускается указывать до 5 значений. Множественные значения учитываются как допустим любой из вариантов, или же еще можно сказать что они объединяются логическим ИЛИ. В запросе можноственные значения нужно разделять вертикальной чертой. Пример фильтра по свойству instrument с тремя допустимыми значениями: instrument+piano|guitar|drums.

context_ids
Array of strings <uuid> (ContextID) [ 1 .. 20 ] items [ items <uuid > ]

Список идентификаторов контекстов.

since
string <date-time>
until
string <date-time>
player_ids
Array of strings <uuid> (PlayerID) [ 1 .. 50 ] items [ items <uuid > ]

Список игроков, активности которых попадут в выборку.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Балл за активности

Обязательно указание либо tradition_id, либо context_ids; эти параметры взаимоисключающие.

Authorizations:
BerlogaJWTServiceKey
query Parameters
tradition_id
integer <int32>

Идентификатор традиции

context_ids
Array of strings <uuid> (ContextID) [ 1 .. 50 ] items [ items <uuid > ]

Список идентификаторов контекстов

player_ids
Array of strings <uuid> (PlayerID) [ 1 .. 50 ] items [ items <uuid > ]

Список игроков, активности которых попадут в выборку. Параметр доступен только при использовании авторизации ServiceKey.

Responses

Response samples

Content type
application/json
0
0

Баллы сгруппированные по традициям

Authorizations:
ServiceKey
query Parameters
talent_id
required
integer <int32>

Получение баллов по всем PlayerID пользователя

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Чтение активности

path Parameters
activity_id
required
string <uuid> (ActivityID)

Идентификатор активности.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "context_id": "f31d7249-b7b1-4729-b3a4-ec0ba07b4686",
  • "player_id": "f8b23bf6-c56d-4f96-b79c-96d80504663d",
  • "app_version": "string",
  • "scores": 0,
  • "artefact_id": "string",
  • "quarantine": "missing_artefact",
  • "application_id": "48ac72d0-a829-4896-a067-dcb1c2b0f30c",
  • "tradition_id": 0,
  • "context_properties": {
    },
  • "metrics": {
    }
}

Традиция контекста

path Parameters
context_id
required
string <uuid> (ContextID)

Идентификатор контекста активности.

Responses

Response samples

Content type
application/json
0
0

admin

Операции, предназначенные для администрирования

Список контекстов

Authorizations:
TalentOAuth
query Parameters
offset
integer <int32>
Default: 0
limit
integer <int32> <= 100
Default: 20
id
Array of strings <uuid> [ items <uuid > ]

Фильтрация по ID контекстов.

t_id
Array of integers <int32> [ items <int32 > ]

Фильтрация по ID традиций.

app_id
Array of strings <uuid> [ items <uuid > ]

Фильтрация по ID приложения.

desc
string

Фильтрация по вхождению подстроки в описание контекста.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Список идентификаторов контекстов

Идентификаторы контекстов выбранные по тому же принципу что и в ActivitiesMetricsList. Обязательно указание либо application_id, либо property. Допускаются оба параметра.

Authorizations:
TalentOAuth
query Parameters
application_id
string <uuid>

Фильтрация по ID приложения.

property
Array of strings [ 1 .. 5 ] items

Фильтрация контекстов по свойствам.

Свойство и его значение разделяются пробелом (+ или %20). В качестве значения допускается указание до пяти вариантов разделенных символом |.

Responses

Response samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Импорт контекстов со свойствами

Импортируемая таблица должна содержать колонки id и description. Содержащие в ячейках идентификатор (UUID) и описание контекста соответственно.

Оставшиеся колонки таблицы будут восприняты как свойства контекстов. Тип значения для свойства определяется на основе значений в ячейках колонки. Если все значения можно интерпретировать как числовые, то тип значения у свойства будет числовой. Если хоть одно значение не приводится к числу, то тип значения определяется как строковый.

В заголовках запроса так же необходимо указать ID приложения с контекстами которого будет выполнятся работа.

Authorizations:
TalentOAuth
header Parameters
X-Application
required
string <uuid>

ID приложения, для которого импортируются контексты.

Request Body schema:
required

Таблица контекстов для импорта.

string <binary>

Responses

Response samples

Content type
application/json
{
  • "error_message": "string"
}