Создание сущности позволяет добавить новую запись в систему.
Для этого используется HTTP-метод POST с передачей данных новой сущности в теле запроса.
После успешного создания API возвращает созданный объект или его идентификатор.
Например, создание нового проекта:
POST https://api.timetta.com/odata/Projects
Content-Type: application/json
Тело запроса:
{
"name": "Новый проект",
"startDate": "2026-07-01",
"endDate": "2026-12-31",
"managerId": "04f9aa6d-4918-4221-bcaf-f9703cc63959",
"organizationId": "bb495d2a-53b0-427b-8b5a-20f61658276b"
}
Пример ответа:
{
"id": "f8d3b4a2-97f6-4f9d-a26e-91f4c0bde712",
"name": "Новый проект",
"startDate": "2026-07-01",
"endDate": "2026-12-31",
"managerId": "04f9aa6d-4918-4221-bcaf-f9703cc63959",
"organizationId": "bb495d2a-53b0-427b-8b5a-20f61658276b"
}
При создании сущности ссылки на связанные объекты передаются через их идентификаторы.
Например:
managerIdorganizationIdportfolioIdПример:
{
"name": "Новый проект",
"managerId": "04f9aa6d-4918-4221-bcaf-f9703cc63959"
}
Передача вложенных объектов вместо идентификаторов не поддерживается.
Например, следующий запрос является некорректным:
{
"name": "Новый проект",
"manager": {
"id": "04f9aa6d-4918-4221-bcaf-f9703cc63959"
}
}
Для установки связей необходимо использовать именно ключевые поля.
Для некоторых агрегатных сущностей допускается одновременная передача связанных коллекций.
Такие свойства в описании сущности имеют тип метамодели CollectionProperty.
Это позволяет создавать корневую сущность и её дочерние элементы одним запросом.
Например, при создании ExpenseRequest можно сразу передать строки расходов в свойстве lines:
{
"projectId": "45eb27e2-161e-4eeb-9b56-72eaea30511d",
"name": "Командировка в офис клиента",
"lines": [
{
"name": "Авиабилеты",
"amount": 15000
},
{
"name": "Проживание",
"amount": 24000
}
]
}
В этом случае дочерние элементы будут созданы вместе с основной записью.
Примечание
Возможность вложенного создания поддерживается только для дочерних коллекций агрегата. Для обычных ссылочных сущностей необходимо использовать идентификаторы.
Для многих сущностей достаточно передать только обязательные поля.
Например:
{
"name": "Новый проект"
}
Остальные значения могут быть установлены автоматически или заполнены позже.
Конкретный состав обязательных полей зависит от сущности.
Примечание
Для определения обязательных и доступных для записи полей рекомендуется использовать описание сущности.
Если запрос успешно выполнен:
Если переданы некорректные данные:
Если отсутствует или истёк токен доступа:
Если недостаточно прав:
Если нарушены бизнес-правила:
Пример ошибки:
{
"error": {
"code": "validation_error",
"message": "Project name is required",
"details": {}
}
}
При создании сущностей рекомендуется:
Перейти на русскую версию?