API Timetta может использоваться для создания сторонних интеграций, чтобы управлять данными абонента без входа в веб-интерфейс Timetta.
Примечание
Спецификация 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 от логики и окружения конкретного интеграционного механизма и, в случае обращения в поддержку, значительно ускорит время ответа.
Примечание
Примеры запросов доступны на узле https://postman.timetta.com.
Для изучения и отладки запросов скопируйте коллекцию в свой аккаунт Postman:
Важно: примеры не могут охватить всю функциональность 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"
}
{
"error": {
"code": "error code",
"message": "error description",
"details": {}
}
}
Перейти на русскую версию?