Към съдържанието
Sursa Developers

Идентификатори на обектите

Всеки обект в API има id. Съхранявайте го в системата си, когато трябва да се върнете към обекта: имената и заглавията може да се променят, идентификаторите – никога.

ОбектidПример
Карта, папкаНиз"3f2c9a7e-5b1d-4c8e-9f0a-1b2c3d4e5f60"
СъбитиеНиз с префикс evt_"evt_0123456789abcdef0123456789abcdef"
КачванеНиз с префикс upl_"upl_8b0c…"
OAuth приложениеНиз с префикс app_"app_5f1c…"
Колекция, потребител, група, API ключ, уебхук, задание и повечето другиЦяло число3

Третирайте идентификаторите като непрозрачни. Не ги анализирайте и не предполагайте формат отвъд типа: идентификатор от тип низ може да бъде всеки низ с дължина до разрешената за полето му.

Новите видове обекти, към които вероятно ще сочите от собствените си системи, получават идентификатори от тип низ с кратък префикс, който назовава вида, последван от 32 шестнайсетични знака.

Препратки между обектите

Обектите сочат един към друг чрез ID в полета с имена <object>_id: collection_id, owner_id, folder_id. За да получите свързания обект в същия отговор, използвайте expand[].

Параметрите на пътя, които приемат ID, се наричат по същия начин: {card_id}, {webhook_id}, {upload_id}.

Колекции по ID

Колекциите имат и id, и уникално име name, например support. Пътищата, които са съществували, преди идентификаторите да станат предпочитани, приемат името на колекцията:

GET /v1/collections/support/stats

Същите пътища приемат и ID, записано като id:<number>:

curl https://api.sursa.com/v1/collections/id:3/stats \
  -H "Authorization: Bearer $SURSA_API_KEY"

В новия код предпочитайте записа id:: администраторът може да преименува колекцията, но нейното ID остава същото. Сегмент само от цифри, например /v1/collections/3, продължава да означава колекцията с име 3. Името на колекция не може да съдържа :, затова двата записа никога не се объркват.

В телата на заявките и в параметрите на заявката collection_id стои до по-ранното collection (името). Когато подадете и двете, предимство има collection_id. collection_id, което не съществува в организацията или което ключът няма право да вижда, връща 404 с кода collections.not_found.

curl -G https://api.sursa.com/v1/cards \
  -H "Authorization: Bearer $SURSA_API_KEY" \
  --data-urlencode "collection_id=3"

Собствени идентификатори

Картите може да носят в external_id идентификатора на записа във вашата система, от който идват: до 512 знака, уникален сред картите на организацията. С него никога не се налага да съхранявате идентификатора на картата в Sursa:

ОперацияКакво прави
PUT /v1/cards-by-external-id/{external_id}Създава картата или заменя съдържанието ѝ, ако тя съществува.
GET /v1/cards-by-external-id/{external_id}Чете картата.
GET /v1/cards?external_id=…Намира картата в списък, заедно с други филтри.

Кодирайте external_id за URL, когато е част от пътя: crm/A-1042 става crm%2FA-1042.

Документите на собствен източник имат собствен external_id в рамките на своя източник. Двата не си пречат: карта от собствен източник се променя, като документът се изпрати отново до неговия източник, а не с PUT /v1/cards-by-external-id/…, който в такъв случай отговаря с 409 и кода cards.managed_by_source.