Shartnoma

Manba mahsulot oʻz fakti haqida xabar beradi, Kalendar uning jadvaliga javob beradi. Ular orasida integratsiyalar soni bilan oʻsmaydigan tor interfeys.

Hodisa oʻziga xosligi bu uchlik

Mahsulot, obyekt turi va uning identifikatori. Mahsulotga Kalendarning ichki identifikatorini saqlash shart emas: u hodisani oʻzida bori bilan manzillaydi.

(product_id, entity_type, entity_id)
  • Oʻsha uchlik boʻyicha qayta upsert yozuvni yangilaydi, ikkinchisini yaratmaydi
  • Oʻchirilgandan keyingi qayta remove xato emas, bosh amal
  • Hodisani faqat uni oʻz kaliti bilan yaratgan mahsulot oʻchira oladi
  • Ajratish tokenlari kerak emas: hodisaning aynan bitta mahsulot egasi bor

Shartnoma nuqtalari

MetodVazifasi
POST /Calendar/upsertMahsulot hodisasini yaratish yoki yangilash
POST /Calendar/removeHodisani oʻziga xoslik uchligi boʻyicha oʻchirish
GET /Calendar/listByEntityMahsulotning aniq obyekti hodisalari
GET /Calendar/eventsShaxsiy va jamoaviy koʻrinish uchun tanlov
GET /Calendar/freebusyXodimlar va resurslarning bandlik vaqti
GET /Calendar/expandTakrorlanishni aniq sanalarga yoyish
POST /Calendar/findSlotsUmumiy bosh oynani tanlash
POST /Calendar/attachConferenceHodisaga A3.Meet xonasini tayyorlash
POST /Calendar/invite, /Calendar/rsvpIshtirokchini taklif qilish va uning javobi
GET /Calendar/ics/{token}Tashqi mijozning faqat oʻqishga obunasi

Transport kelishuvlari

  • Sarlavhalar

    API_KEY, A3Session, AccountId, ProductId va Language-Code. Mahsulot chaqiruvi mahsulot kaliti bilan, foydalanuvchi chaqiruvi A3.ID sessiyasi bilan avtorizatsiya qilinadi.

  • Javob konverti

    Holati, kodi, xato matni va foydali yuki bor yagona konvert. Xatolar oʻsha konvertda keladi va Language-Code boʻyicha mahalliylashtirilgan.

  • Roʻyxatlar

    Roʻyxatlar yozuvlarning umumiy soni bilan birga qaytadi, filtrlash va sahifalash soʻrov filtrlari orqali boradi.

  • Hujjatlar

    Olti tilda Scalar va Swagger. CalDAV alohida tasvirlangan: bu JSON shartnoma emas, WebDAV ustidagi protokol.

Nizoni hodisa versiyasi hal qiladi

Har bir yangilash chaqiruvchi tomon oxirgi koʻrgan versiyani yuboradi. U joriysidan uzoqlashsa, server 409 kodi va dolzarb holatni qaytaradi. Nizoni server emas, chaqiruvchi tomon hal qiladi.

409 Conflict
  • Mahsulotga odatiy ishlov yangi versiya bilan qaytarish: u maydonni toʻliq egallaydi
  • Odamga qaysi versiyani qoldirish tanlovi bor solishtirish oynasi koʻrsatiladi
  • Oʻsha versiya CalDAV protokolining ETag vazifasini bajaradi, ikkinchi mexanizm yoʻq
  • Bu CRDT ham, yozishga qulf ham emas: model haqiqiy yukka mos

Faqat REST emas

  • CalDAV

    Kalendarlarni topish, oraliq boʻyicha tanlash, yozish va oʻchirish metodlari bor RFC 4791 boʻyicha alohida yoʻl. Mahsulot hodisasi koʻrinadi, lekin unga yozish rad etiladi.

  • Jonli kanal

    Monoton kursori bor oʻzgarishlar jurnali va real vaqt hubi. Ochiq varaq darhol yangilanadi, tarmoqsiz mijoz oʻsha kursor boʻyicha quvib yetadi.

  • Vidjet

    Oʻz interfeysida katakcha kerak mahsulot uchun hodisalar va bandlik tanlovi ustidagi oʻrnatiladigan kadr. Kadr mahsulot serveridan olingan qisqa muddatli token orqali ochiladi.

  • Cheklovlar

    Mahsulot boʻyicha yozish chastotasi cheklovi va hodisalarni tahlil qilish uchun sukut boʻyicha boʻlmagan kalitlar soʻrovlari jurnali.

Integratsiya skouplari

Integratsiya hisob egasining aniq ruxsatisiz kompaniyaning butun kalendariga kira olmaydi.

  • ReadHodisalarni olish
  • PushOʻz hodisalarini yaratish va yangilash
  • FreeBusyHodisa tafsilotlarisiz bandlik vaqtini soʻrash
  • ShareKalendarlarga umumiy kirishni boshqarish

Hujjatlarni ochish

Nuqtalar, modellar va xato kodlarining olti tildagi toʻliq tavsifi.