Чтение одной записи позволяет получить конкретный объект по его идентификатору.
Для этого используется HTTP-метод GET с указанием идентификатора записи в URL.
Этот способ используется, когда известен уникальный идентификатор сущности и требуется получить её текущее состояние.
Например, получение проекта по идентификатору:
GET https://api.timetta.com/odata/Projects('45eb27e2-161e-4eeb-9b56-72eaea30511d')
Пример ответа:
{
"id": "45eb27e2-161e-4eeb-9b56-72eaea30511d",
"name": "СпецЭкоСервис - Пресейл",
"startDate": "2025-10-28",
"endDate": "2025-12-31",
"modified": "2022-09-04T11:06:03.775347Z"
}
В отличие от чтения коллекций, объект возвращается напрямую, без свойства value.
Примечание
При обращении по идентификатору значения типа Guid рекомендуется передавать в одинарных кавычках.
Можно ограничить набор возвращаемых полей.
Например:
GET https://api.timetta.com/odata/Projects('45eb27e2-161e-4eeb-9b56-72eaea30511d')?$select=id,name,startDate,endDate
Пример ответа:
{
"id": "45eb27e2-161e-4eeb-9b56-72eaea30511d",
"name": "СпецЭкоСервис - Пресейл",
"startDate": "2025-10-28",
"endDate": "2025-12-31"
}
Это позволяет уменьшить объём ответа и получить только необходимые данные.
Если необходимо получить связанные данные, используется $expand.
Например, загрузить руководителя и организацию проекта:
GET https://api.timetta.com/odata/Projects('45eb27e2-161e-4eeb-9b56-72eaea30511d')?$expand=manager($select=id,name),organization($select=id,name)
Пример ответа:
{
"id": "45eb27e2-161e-4eeb-9b56-72eaea30511d",
"name": "СпецЭкоСервис - Пресейл",
"manager": {
"id": "04f9aa6d-4918-4221-bcaf-f9703cc63959",
"name": "Спиридонов Александр"
},
"organization": {
"id": "bb495d2a-53b0-427b-8b5a-20f61658276b",
"name": "СпецЭкоСервис"
}
}
Это позволяет получать связанные сущности одним запросом.
Параметры $select и $expand можно использовать совместно.
Например:
GET https://api.timetta.com/odata/Projects('45eb27e2-161e-4eeb-9b56-72eaea30511d')?$select=id,name,startDate,endDate,stateId,managerId,organizationId&$expand=state($select=id,name),manager($select=id,name),organization($select=id,name)
Пример ответа:
{
"id": "45eb27e2-161e-4eeb-9b56-72eaea30511d",
"name": "СпецЭкоСервис - Пресейл",
"startDate": "2025-10-28",
"endDate": "2025-12-31",
"state": {
"id": "584c3678-ff09-44ff-9116-2d0433d3675e",
"name": "Архивирован"
},
"manager": {
"id": "04f9aa6d-4918-4221-bcaf-f9703cc63959",
"name": "Спиридонов Александр"
},
"organization": {
"id": "bb495d2a-53b0-427b-8b5a-20f61658276b",
"name": "СпецЭкоСервис"
}
}
Такой подход позволяет получить основную информацию о сущности и связанных объектах одним запросом.
Можно обращаться напрямую к навигационным свойствам.
Например, получить руководителя проекта:
GET https://api.timetta.com/odata/Projects('45eb27e2-161e-4eeb-9b56-72eaea30511d')/manager
Пример ответа:
{
"id": "04f9aa6d-4918-4221-bcaf-f9703cc63959",
"name": "Спиридонов Александр"
}
Это удобно, если требуется только связанная сущность.
Если запись не найдена, API возвращает:
Если отсутствует или истёк токен доступа:
Если недостаточно прав доступа:
При чтении одной записи рекомендуется:
$select для ограничения набора полей;$expand только для действительно необходимых связанных данных;Перейти на русскую версию?