Обновление записи позволяет изменить существующую сущность.
Для этого используется HTTP-метод PATCH с передачей изменяемых полей в теле запроса.
Обновляются только переданные свойства. Остальные значения сохраняются без изменений.
Например, обновление названия и дат проекта:
PATCH https://api.timetta.com/odata/Projects('45eb27e2-161e-4eeb-9b56-72eaea30511d')
Content-Type: application/json
Тело запроса:
{
"name": "СпецЭкоСервис - Пресейл (обновлено)",
"startDate": "2025-11-01",
"endDate": "2025-12-31"
}
Если запрос выполнен успешно, API возвращает код:
Конкретный формат ответа зависит от сущности и операции.
PATCH поддерживает частичное обновление.
Например, если необходимо изменить только название:
{
"name": "Новое название проекта"
}
В этом случае остальные поля останутся без изменений.
Примечание
Рекомендуется передавать только те поля, которые действительно изменяются.
Для изменения ссылок на связанные объекты используются идентификаторы.
Например:
{
"managerId": "04f9aa6d-4918-4221-bcaf-f9703cc63959"
}
Передача вложенных объектов вместо идентификаторов не поддерживается.
Некорректный пример:
{
"manager": {
"id": "04f9aa6d-4918-4221-bcaf-f9703cc63959"
}
}
Для обновления связей необходимо использовать ключевые поля.
Для агрегатных сущностей допускается обновление дочерних коллекций.
Такие свойства в описании сущности имеют тип метамодели CollectionProperty.
Например, сущность ExpenseRequest может содержать коллекцию lines.
Поведение зависит от переданного значения:
Коллекция не изменяется.
Пример:
{
"name": "Командировка в офис клиента",
"lines": null
}
Или:
{
"name": "Командировка в офис клиента"
}
В обоих случаях текущий состав строк останется без изменений.
Коллекция будет очищена.
Пример:
{
"lines": []
}
Все дочерние элементы будут удалены.
Коллекция будет полностью обновлена.
Пример:
{
"lines": [
{
"name": "Авиабилеты",
"amount": 18000
},
{
"name": "Проживание",
"amount": 26000
}
]
}
Текущий состав дочерней коллекции будет заменён переданным.
Важно
При передаче дочерней коллекции выполняется полная синхронизация состава. Если требуется сохранить существующие элементы, их необходимо передавать повторно.
Если запись не найдена:
Если переданы некорректные данные:
Если отсутствует или истёк токен доступа:
Если недостаточно прав:
Если нарушены бизнес-правила:
Пример ошибки:
{
"error": {
"code": "validation_error",
"message": "Project end date must be greater than start date",
"details": {}
}
}
При обновлении сущностей рекомендуется:
Перейти на русскую версию?