Келишим
Булак продукт өз фактысы жөнүндө билдирет, Календарь анын графигине жооп берет. Алардын ортосунда интеграциялардын саны менен өспөгөн тар интерфейс.
Окуянын өзгөчөлүгү деген үчтүк
Продукт, объекттин түрү жана анын идентификатору. Продуктка Календардын ички идентификаторун сактоонун кереги жок: ал окуяны өзүндө бар нерсе менен даректейт.
(product_id, entity_type, entity_id)- Ошол үчтүк боюнча кайра upsert жазууну жаңылайт, экинчисин түзбөйт
- Жоготулгандан кийинки кайра remove ката эмес, бош операция
- Окуяны аны өз ачкычы менен түзгөн продукт гана жоготот
- Ажыратуу токендери керек эмес: окуянын так бир продукт ээси бар
Келишимдин чекиттери
| Метод | Багыты |
|---|---|
POST /Calendar/upsert | Продукттун окуясын түзүү же жаңылоо |
POST /Calendar/remove | Окуяны өзгөчөлүк үчтүгү боюнча жоготуу |
GET /Calendar/listByEntity | Продукттун конкреттүү объектинин окуялары |
GET /Calendar/events | Жеке жана командалык көрүнүш үчүн тандоо |
GET /Calendar/freebusy | Кызматкерлердин жана ресурстардын бош эмес убактысы |
GET /Calendar/expand | Кайталоону конкреттүү күндөргө жайуу |
POST /Calendar/findSlots | Жалпы бош терезени тандоо |
POST /Calendar/attachConference | Окуяга A3.Meet бөлмөсүн даярдоо |
POST /Calendar/invite, /Calendar/rsvp | Катышуучуну чакыруу жана анын жообу |
GET /Calendar/ics/{token} | Тышкы кардардын окууга гана жазылуусу |
Транспорттук келишимдер
Аталыштар
API_KEY, A3Session, AccountId, ProductId жана Language-Code. Продукттун чакыруусу продукттун ачкычы менен, колдонуучунуку A3.ID сессиясы менен авторизацияланат.
Жооптун конверти
Статусу, коду, ката тексти жана пайдалуу жүгү бар бирдиктүү конверт. Каталар ошол конвертте келет жана Language-Code боюнча локалдаштырылган.
Тизмелер
Тизмелер жазуулардын жалпы саны менен бирге кайтат, чыпкалоо жана барактоо суроонун чыпкалары аркылуу жүрөт.
Документация
Алты тилде Scalar жана Swagger. CalDAV өзүнчө сүрөттөлгөн: бул JSON келишими эмес, WebDAV үстүндөгү протокол.
Чырды окуянын версиясы чечет
Ар бир жаңылоо чакырган тарап акыркы көргөн версияны жөнөтөт. Ал учурдагыдан ажыраса, сервер 409 коду менен актуалдуу абалды кайтарат. Чырды сервер эмес, чакырган тарап чечет.
409 Conflict- Продуктка типтүү иштетүү жаңы версия менен кайталоо: ал талааны толугу менен ээлейт
- Адамга кайсы версияны калтыруу тандоосу бар салыштыруу терезеси көрсөтүлөт
- Ошол версия CalDAV протоколунун ETag кызматын аткарат, экинчи механизм жок
- Бул CRDT да, жазууга кулпу да эмес: модель чыныгы жүккө шайкеш
REST гана эмес
CalDAV
Календарларды табуу, аралык боюнча тандоо, жазуу жана жоготуу методдору бар RFC 4791 боюнча өзүнчө жол. Продукттун окуясы көрүнөт, бирок ага жазуу четке кагылат.
Тирүү канал
Монотондуу курсору бар өзгөрүүлөр журналы жана реалдуу убакыт хабы. Ачык өтмөк дароо жаңыланат, тармаксыз кардар ошол курсор боюнча кууп жетет.
Виджет
Өз интерфейсинде торчо керек продуктка арналган, окуялар жана бош эмес убакыт тандоосунун үстүндөгү киргизилүүчү кадр. Кадр продукттун серверинен алынган кыска мөөнөттүү токен менен ачылат.
Чектөөлөр
Продукт боюнча жазуу жыштыгынын чектөөсү жана окуяларды талдоо үчүн демейки эмес ачкычтардын суроолорунун журналы.
Интеграциянын скоуптары
Интеграция аккаунттун ээсинин ачык уруксатысыз компаниянын бүт календарына кире албайт.
ReadОкуяларды алууPushӨз окуяларын түзүү жана жаңылооFreeBusyОкуянын деталдарысыз бош эмес убакытты сурооShareКалендарларга жалпы кирүүнү башкаруу
Документацияны ачуу
Чекиттердин, моделдердин жана ката коддорунун алты тилдеги толук сүрөттөмөсү.