Общие сведения
Надежность и безопасность
Начало работы
Общие концепции
Учёт времени
Управление проектами
FAQ
Управление ресурсами
Управление финансами
Управление затратами
Управление биллингом
Управление задачами
Компоненты
Концепции
Инструкции
On-premises
Аналитика
Типы отчётов
Использование отчётов
Группировка и суммирование данных источника
Группировка данных в отчете
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Пользовательские настройки отчёта
Вычисляемые поля
Выражения вычисляемых полей
Использование панелей мониторинга
Публикация панелей
Фильтры источников данных
Настройка и администрирование
Типовой порядок настройки системы
API
История изменений

Общие сведения об API

Обновлено: 10.07.2024

Назначение

API Timetta может использоваться при создании сторонних интеграции для манипулирования данными абонента в обход веб-интерфейса Timetta.

Использование

Архитектура

Timetta реализует OData v4 API доступный на конечной точке https://api.timetta.com/odata
Метаданные API в виде XML доступны по адресу https://api.timetta.com/odata/$metadata

Примечание

Спецификация OData доступна на официальном сайте — https://www.odata.org. Если вы не знакомы с этим протоколом, то рекомендуем до разработки интеграции освоить, как минимум, базовые понятия — https://www.odata.org/getting-started/understand-odata-in-6-steps.
Примеры запросов с агрегацией и группировкой данных — https://learn.microsoft.com/en-us/odata/client/grouping-and-aggregation

Для аутентификации используется отдельный OAuth 2.0 сервис доступный по адресу https://auth.timetta.com. Подробнее — Аутентификация.

В большинстве случаев любая сущность управляется стандартными методами (POST, GET, PUT, PATCH, DELETE). Поддерживается язык запросов OData. Для отдельных сущностей доступны специализированные действия и функции.

Важно

Timetta — развиваемая система. Версионирования API нет. Мы прилагаем все усилия для недопущения критических изменений, если таковые есть — предупреждаем минимум за 14 дней, но при разработке интеграций необходимо быть готовым поддерживать её актуальность.

Тестирование и отладка

Перед разработкой интеграции с Timetta, рекомендуется тестировать обращения к API отдельно, например, с помощью Postman. Это позволит отделить потенциальные проблемы с использованием API от логики и окружения конкретного интеграционного механизма и, в случае обращения в поддержку, значительно ускорит время ответа.

Примеры использования API

Примечание

Примеры запросов доступны на узле https://postman.timetta.com.

Для изучения и отладки запросов скопируйте коллекцию в свой аккаунт Postman.

  • Для отладки потребуется действующий пользователь.
  • В настройках коллекции введите значение для переменных user_email и user_password.
  • Все запросы требуют авторизации через токен доступа. Для получения токена доступа выполните запрос Get Access Token. Запрос использует учетные данные пользователя из настроенных переменных, получает access_token, и записывает его в переменную access_token. Далее этот токен используется во всех прочих запросах.
  • Время жизни access_token — 1 час. Далее необходимо выполнить запрос Get Access Token повторно.

Важно: примеры не могут охватить всю функциональность API и зачастую в них используется несколько параметров $select,$expand и т. д. для демонстрации возможностей OData.
После ознакомления с примерами, рекомендуется так же попробовать использовать запросы без параметров.
Например, чтобы получить все поля какой-либо сущности, нужно запросить ее без параметра $select или же с $select=*.

Поля навигации

Сущности могут содержать поля навигации. Например, сущность User содержит навигационное свойство Department. Такое поле всегда идет в паре с ключом, в данном случае departmentId.

Примечание

В описании сущностей мы опускаем упоминание о наличии ключа навигации.
Посмотреть имеющиеся навигационные поля можно в метаданных (отображаются как NavigationProperty)

Поля навигации можно «раскрывать» при запросе, используя параметр expand:

[GET] https://api.timetta.com/odata/Users(a5e16802-23d9-48be-99bb-02d9e34c7409)?
$select=name,departmentId&$expand=department($select=name)

Response: 
{
   "name": "Иван Агафонов",
   "departmentId": "9468cd5c-ea04-4adb-a1d7-94b6b910ab2e"
   "department": 
   {
      "name": "Департамент корпоративного аудита 02"
   }
}

Для обновления полей навигации необходимо использовать их ключи, например:

[PATCH] https://api.timetta.com/odata/Users(a5e16802-23d9-48be-99bb-02d9e34c7409)  

Payload: 
{   
   "departmentId": "9468cd5c-ea04-4adb-a1d7-94b6b910ab2e"   
}

Обработка ответа

В случае успешного выполнения операции возвращается ответ с HTTP кодом 200-204.

В случае ошибки аутентификации (чаще всего ввиду не переданного/истекшего Bearer token) возвращается ответ с HTTP кодом 401.

В случае ошибки доступа к сущности из-за отсутствия прав (см. статью Как работают права доступа) может вернуться ответ с HTTP кодом 403-404.

В случае ошибки в бизнес-логике возвращается ответ с HTTP кодом 500 и телом в формате:

{
    "error": {
        "code": "error code",
        "message": "error description",        
        "details": {}
    }
}

Содержание

Назначение Использование Архитектура Тестирование и отладка Примеры использования API Поля навигации Обработка ответа
Ничего не найдено

Перейти на русскую версию?