Использование API для активных списков
| Если планируется добавление значений объектов в активные списки, необходимо выполнить соответствующие шаги настройки API. |
Клиент activeList позволяет работать с активными списками с использованием описанных ниже методов.
Методы API для работы с активными списками включают:
-
Вывод отдельной записи активного списка по ключу, а также массива записей активного списка.
-
Добавление записи активного списка.
-
Удаление записи активного списка.
Описания и примеры приведены для TypeScript (среда выполнения Deno) и Python.
Подготовка клиента activeList для работы с активными списками
Чтобы начать работу с активными списками, используя пакет SDK, импортируйте его:
import { SetupActiveList } from '@playbooks/active-list-client'
...
const activeClient = SetupActiveList()
...
export async function main() {
const v = await activeClient.<method_name>(<arg_1>, <arg_2>, ..., <arg_m>)
console.log(v)
}
from playbooks.active_list import ActiveListClient
...
def main() {
...
client = ActiveListClient.initialize()
v = client.<method_name>(<arg_1>, <arg_2>, ..., <arg_m>)
print(v)
...
}
Здесь:
-
<method_name>: имя используемого метода; -
<arg_N>: параметры метода.
Вывод записи активного списка по ключу (get_record)
get_record({
activeListId: <active_list_id>, // string
key: <key> // string
})
get_record(
id=<active_list_id>, # str
key=<key> # str
)
Параметры метода включают в себя:
-
<active_list_id>: идентификатор активного списка (строка); -
<key>: ключ записи (строка).
Примеры получения записи активного списка
Пример скрипта с get_record в TypeScript
id: get_active_list_object_deno
name: Get active list object deno
description: Получение записи активного списка скриптом Deno (TypeScript) с помощью метода get_record
author: Ivan Ivanov
tags: [deno, typescript, active list]
version: 0.0.1
type: script
source: !deno |
import { SetupActiveList } from '@playbooks/active-list-client'
const activeListId = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' // id активного списка.
export async function main() {
try {
// Настройка клиента активного списка.
const activeClient = SetupActiveList()
// Вывод id активного списка.
console.log(`Получение значений из активного списка с id: ${activeListId}`)
// Получение записи активного списка.
const activeListObject = await activeClient.get_record({activeListId, key: '1'})
console.log('Активный список получен успешно:')
// Вывод значений из ответа.
console.log('count:', activeListObject.count)
console.log('created_at:', activeListObject.created_at)
console.log('expired_at:', activeListObject.expired_at)
console.log('updated_at:', activeListObject.updated_at)
console.log('fields:', activeListObject.fields)
console.log('key:', activeListObject.key)
// Или вывод полного ответа из запроса:
// console.log('Полный ответ:', JSON.stringify(activeListObject, null, 2))
} catch (error) {
console.error(`Произошла ошибка: ${error.message}`)
}
}
Пример скрипта с get_record в Python
id: get_active_list_object_py
name: Get active list object py
description: Получение записи активного списка скриптом Python с помощью метода get_record
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
from playbooks.active_list import ActiveListClient
active_list_id = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' # id активного списка.
def main():
try:
client = ActiveListClient.initialize()
record = client.get_record(id=active_list_id, key='1') # id активного списка и значение ключа.
print('Получение записи')
print('-' * 30)
print('Запись с ключом', record.key)
print('Значение', record.fields)
except Exception as error:
# Обработка исключения.
logger.error(f'Произошла ошибка: {error}')
Вывод активного списка (find_records)
find_records({
activeListId: <active_list_id> // string
})
find_records(
id=<active_list_id> # str
)
Параметры метода включают в себя:
-
<active_list_id>: идентификатор активного списка.
Примеры получения записи активного списка
Пример скрипта с find_records в TypeScript
id: Find_active_list_object_deno
name: Find active list object deno
description: Получение массива записей активного списка скриптом Deno (TypeScript) с помощью метода find_records
author: Ivan Ivanov
tags: [typescript, deno, active list]
version: 0.0.1
type: script
source: !deno |
import { SetupActiveList } from '@playbooks/active-list-client'
const activeListId = '5aaab6a-9119-485e-8621-c5ff4dbc1a40' // id созданного активного списка.
export async function main() {
try {
// Настройка клиента активного списка.
const activeClient = SetupActiveList()
console.log(`Получение списка объектов со значениями из активного списка с id: ${activeListId}`)
// Поиск записей активного списка. Возвращает Result<Array<ActiveListRecord>>.
const records = await activeClient.find_records({activeListId})
console.log('Список записей в активном списке')
console.log('-'.repeat(30))
for (const record of records) {
console.log('Запись с ключом:', record.key)
console.log('Значение:', record.fields)
console.log('-'.repeat(30)) // Разделитель для удобства чтения.
} catch (error) {
console.error(`Произошла ошибка: ${error.message}`)
}
}
Пример скрипта с find_records в Python
id: list_active_list_object_py
name: List active list object py
description: Получение массива записей активного списка скриптом Python с помощью метода find_records
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
from playbooks.active_list import ActiveListClient
active_list_id = '6c707e96-f786-4d84-b787-3956d1b4e7a1' # id созданного активного списка.
def main():
try:
client = ActiveListClient.initialize()
print(f'Получение списка объектов со значениями из активного списка с id: {active_list_id}')
records = client.find_records(id=active_list_id)
print('Список записей в активном списке')
print('-' * 30)
for record in records:
print('Запись с ключом', record.key)
print('Значение', record.fields)
print('-' * 30) # Разделитель для удобства чтения.
except Exception as error:
# Обработка исключения.
logger.error(f'Произошла ошибка: {error}')
Создание записи в активном списке (insert-record)
Метод используется для создания записи активного списка. Значения записи активного списка задаются с помощью параметров.
insert_record({
activeListId: <active_list_id>, // string
key: <key>, // Entry[]
value: <values>, // Entry[]
})
insert_record(
id=<active_list_id>, # str
key=<key>, # Dict[str, str | int | float | bool | Timestamp]
value=<values>, # Dict[str, str | int | float | bool | Timestamp]
)
Параметры метода включают в себя:
-
<active_list_id>: идентификатор активного списка (строка); -
<key>: ключ записи (в TypeScript — массив пар "ключ — значение", в Python — словарь); -
<values>: поля записи и их значения (в TypeScript — массив пар "ключ — значение", в Python — словарь).
{
key: <field_name>, // string
value: {
<value_type>: <field_value> // number | boolean | string | { nanos: number, seconds: number} | null
}
}
Здесь:
-
<field_name>: имя поля (строка); -
<value_type>: тип значения (Integer,Float,Boolean,String,Timestamp,Empty); -
<field_value>: значение поля.
Примеры создания записи активного списка
Пример скрипта с insert_record в TypeScript
id: create_active_list_object_deno
name: Create active list object deno
description: Создание записи активного списка скриптом Deno (TypeScript) с помощью метода insert_record
author: Ivan Ivanov
tags: [deno, typescript, active list]
version: 0.0.1
type: script
source: !deno |
import { SetupActiveList } from '@playbooks/active-list-client'
const activeListId = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' // id активного списка.
export async function main() {
try {
// Настройка клиента активного списка.
const activeClient = SetupActiveList()
// Вывод id активного списка.
console.log(`Создание в активном списке с id: ${activeListId}`)
// Создание записей активного списка. Возвращает массив строк с результатами создания. Принимает id, ключ, значение.
const insertedObject = await activeClient.insert_record({
activeListId,
key: [
{
key: 'account', // Это ключ.
value: {
String: '1'
}
}
],
value: [
{
key: 'commonName',
value: {
String: 'User'
}
},
{
key: 'upn',
value: {
String: 'ivan.ivanov@corp.local'
}
},
{
key: 'cmsObjectId',
value: {
String: '5'
}
}
]
})
console.log(`Создан объект с ключом: ${insertedObject}`)
} catch (err) {
console.error(`Произошла ошибка: ${err.message}`)
}
}
Пример скрипта с insert_record в Python
id: create_active_list_object_py
name: Create active list object py
description: Создание записи активного списка скриптом Python с помошью метода insert_record
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
from playbooks.active_list import ActiveListClient
active_list_id = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' # id активного списка.
def main():
try:
client = ActiveListClient.initialize()
# Ключ - значение в активном списке.
key = {
'account': '1'
}
value = {
'upn': 'ivan.ivanov@corp.local',
'commonName': 'User',
'cmsObjectId': '5'
}
client.insert_record(id=active_list_id, key=key, value=value)
print(f'Запись создана в {active_list_id}')
except Exception as error:
# Обработка исключения.
logger.error(f'Произошла ошибка: {error}')
Удаление записи активного списка (delete_record)
Метод служит для удаления записи активного списка по ключу.
delete_record({
activeListId: <active_list_id>, // string
key: <key> // string
})
delete_record(
id=<active_list_id>, # str
key=<key> # str
)
Параметры метода включают в себя:
-
<active_list_id>: идентификатор активного списка (строка); -
<key>: ключ записи (строка).
Примеры удаления записи активного списка
Пример скрипта с delete_record в TypeScript
id: delete_active_list_object_deno
name: Delete active list object deno
description: Удаление записей активного списка скриптом Deno (TypeScript) с помощью метода delete_record
author: Ivan Ivanov
tags: [deno, typescript, active list]
version: 0.0.1
type: script
source: !deno |
import { SetupActiveList } from '@playbooks/active-list-client'
const activeListId = '95aaab6a-9119-485e-8621-c5ff4dbc1a40'
const activeListKeys = ['first_key', 'second_key', 'third_key', ...]
export async function main() {
try {
// Настройка клиента активного списка.
const activeClient = SetupActiveList()
// Вывод id активного списка.
console.log(`Удаление объектов из активного списка с id: ${activeListId}`)
// Удаление записей из активного списка по каждому ключу.
for (const key of activeListKeys) {
// Удаление одной записи из активного списка.
const deletedObject = await activeClient.delete_record({activeListId, key})
console.log(`Объект с ключом '${key}' удален.`)
}
} catch (error) {
console.error(`Произошла ошибка: ${error.message}`)
}
}
Пример скрипта с delete_record в Python
id: delete_active_list_object_py
name: Delete active list object py
description: Удаление записи активного списка скриптом Python с помощью метода delete_record
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
from playbooks.active_list import ActiveListClient
active_list_id = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' # id активного списка.
key_id = 'account' # Ключ, по которому производится поиск записи.
def main():
try:
client = ActiveListClient.initialize()
# Удаление записи.
client.delete_record(id=active_list_id, key=key_id)
print(f'Запись c ключом {key_id} удалена')
except Exception as error:
# Обработка исключения.
logger.error(f'Произошла ошибка: {error}')
Была ли полезна эта страница?