Přeskočit obsah

API

Obecně je možné Open Web Calendar používat bez omezení. Toto API je možné použít pro úpravu kalendáře za běhu.

Tato sekce může být užitečná pokud platí jedno z níže uvedených:

  • Jste webový vývojář a chcete vložit Open Web Calendar.
  • Chcete využít plnou flexibilitu, ne pouze to co je dostupné na konfigurační stránce.
  • Chcete použít JavaScript pro dynamické generování designu a možností kalendáře.
  • Chcete rozšířit funkcionalitu Open Web Calendar.
  • Chcete použít Open Web Calendar jako proxy pro požadavky JSON událostí pro Váš vlastní feed.

Koncové body

Základní parametry u těchto koncových bodů jsou stejné:

  • /index.html - upravit kalendář
  • /about.html - zobrazení informací o
  • /calendar.html - zobrazení kalendáře
  • /calendar.spec - stažení specifikace
  • /calendar.ics - přihlášení k odběru ics souboru
  • /calendar.events.json - FLEXIBINÍ - získá události jako JSON. Pozor! Toto LZE použít, nicméně neni zajištěno že schéma JSON zůstane stejné. V případě použití přidejte testy.

Další parametry jsou požadovány pro /calendar.events.json:

  • timezone=UTC - časové pásme ve kterém je potřeba zobrazit události
  • from=YYYY-MM-DD - začátek období daných událostí (včetně)
  • to=YYYY-MM-DD - konec období daných událostí (mimo)

Parametry

Všechny parametry konfigurace jsou dostatečně popsány v default_specification. To je vzor. Například, pokud naleznete parametr title v default_specification, máte několik možností:

Změna názvu v parametru dotazu:

/index.html?title=calendar

Změna názvu ve specifikaci YAML:

title: calendar

Změna názvu ve specifikaci JSON:

{
  "title": "calendar"
}

Kompilace specifikace

Pomocí parametrů můžete změnit chování a vzhled kalendáře. Pokud je stejný parametr specifikován v různých místech, předchozí místo uvedené níže má nejvyšší přednost. Zde jsou místa pro zadání parametrů:

Parametry požadavků

Všechny parametry do URL kalendáře jsou ve specifikaci. Parametry požadavku mají nejvyšší přednost.

Příklady:

index.html?language=de
calendar.html?title=CALENDAR

specification_url

Pokud zadáte tento parametr dotazu, konfigurace editoru je načtena z této adresy URL. Parametry dotazu jsou stále důležitější než to, co je napsáno v tomto souboru. Zdrojový formát může být YAML nebo JSON.

Příklady:

calendar.html?specification_url=https://github.com/niccokunzmann/open-web-calendar/raw/master/open_web_calendar/default_specification.yml

open_web_calendar.app.DEFAULT_SPECIFICATION

Určeno pro vývojáře a Python-internal.

from open_web_calendar.app import DEFAULT_SPECIFICATION
DEFAULT_SPECIFICATION['title'] = 'calendar'

OWC_SPECIFICATION

Jedná se o volitelnou proměnnou prostředí. Přečtěte si více v Konfiguraci serveru.

default_specification

Tento soubor obsahuje výchozí parametry. Nesmí být vloženy přímo do zdrojového kódu. Všechny parametry jsou uvedeny a zdokumentovány zde, takže tento soubor lze použít pro referenci. Neupravujte tento soubor, použijte místo toho OWC_SPECIFICATION proměnnou prostředí.

Přidání parametrů

Pokud přidáte nový parametr jako vývojář:

Specifikace v kalendáři

app.py kompiluje specifikaci z uvedených parametrů v get_specification(). V template můžete přistupovat ke specifikaci pomocí proměnné specification. Specifikace je k dispozici pro JavaScript jako proměnná specification.

Viz také:

Specifikace na stránce Indexu

Výchozí specifikace je k dispozici před sestavením kalendáře v JavaScriptu v configuration.default_specification proměnné. Funkce getSpecification() vytvořila specifikaci ze vstupů. Obecně by měla být použita proměnná specification.

Architektura

Níže najdete obrázek architektury.

architecture

Základem kalendáře je specifikace, která je dána v různých formách. Tato specifikace ovlivňuje všechny kroky.

Poté, co je specifikace zkompilována, jsou (ics) soubory kalendáře staženy z internetu.

Události jsou generovány ze souborů kalendáře.

Poté jsou vybrány různé pohledy na zobrazení událostí.

Toto nakonec vede k HTML a stylovým změnám webové stránky kalendáře.

V reálných aplikacích jsou tyto kroky trochu smíchány a neseřazeny nebo vynechány, ale to vysvětluje jednoduše základní, počáteční myšlenku zpracování události.