Saltar a contenido

API

Generalmente, Calendario web abierto está ahí para usarse sin restricciones. Puedes utilizar esta API para personalizar el calendario sobre la marcha.

Esta sección puede serle útil si se da alguna de estas circunstancias:

  • Eres un desarrollador web que desea integrar el Calendario web abierto.
  • Quieres explotar toda la flexibilidad, no solo lo que se expone en la página de configuración.
  • Deseas utilizar JavaScript para generar dinámicamente el diseño y las opciones del calendario.
  • Deseas ampliar las funciones de Calendario web abierto.
  • Deseas utilizar Calendario web abierto como proxy para solicitar eventos JSON para tu fuente de eventos de creación propia.

Punto final de comunicación

Los parámetros básicos son los mismos en estos puntos finales:

  • /index.html - editar el calendario
  • /about.html - ver la página acerca de
  • /calendar.html - ver el calendario
  • /calendar.spec - descargar las especificaciones
  • /calendar.ics - suscribirse al archivo ics
  • /calendar.events.json - FLEXIBLE - obtén los eventos como JSON Por favor, ten en cuenta que PUEDES usar esto pero no puedes estar seguro de que el esquema JSON siga siendo el mismo. Si quieres eso, añade tests.

Parámetros adicionales requeridos para /calendario.eventos.json :

  • timezone=UTC - la zona horaria en la que debe mostrar los eventos
  • from=YYYY-MM-DD - el inicio del periodo en el que ocurren los eventos (inclusive)
  • to=YYYY-MM-DD - el final del periodo en el que ocurren los eventos (exclusivo)

Parámetros

Todos los parámetros de configuración se describen suficientemente en default_specification. Esa es la referencia. Por ejemplo, si encuentras el parámetro title en [default_specifications], tiene varias opciones:

Cambiar el título en un parámetro de consulta:

/index.html?title=calendar

Cambiar el título en una especificación YAML:

title: calendar

Cambiar el título en una especificación JSON:

{
  "title": "calendar"
}

Cómo añadir parámetros

Si añades un nuevo parámetro como desarrollador,

  • Añade el parámetro con un valor por defecto a la default_specification
  • Añadir una implementación, dependiendo de su uso en app.py o a las plantillas de los archivos JavaScript. La especificación ya está disponible en todos ellos para su uso.
  • Añade pruebas en features/configure-the-calendar.feature para comprobar que el calendario responde a la función.
  • Añadir pruebas en features/edit-the-calendar.feature para asegurarse de que el parámetro se puede utilizar cuando se edita un calendario.

Compilación de la especificación

Puedes cambiar el comportamiento y la apariencia del calendario en los parámetros. Estos son los lugares para especificar parámetros:

  1. Parámetros de la consulta Todos los parámetros de la url del calendario se introducen en las especificaciones. Los parámetros de consulta tienen la mayor prioridad. Ejemplos: txt index.html?language=de calendar.html?title=CALENDAR
  2. specification_url Si especificas este parámetro de consulta, la configuración del editor también se carga desde esta url. Los parámetros de consulta siguen siendo más importantes que el archivo. El formato fuente puede ser YAML o JSON. Ejemplos: calendar.html?specification_url=https://github.com/niccokunzmann/open-web-calendar/raw/master/default_specification.yml

  3. default_specification Este archivo contiene los parámetros por defecto. No deben estar codificados en el código fuente. Todos ellos están ahí. Los parámetros de consulta y la specification_url anulan estos valores.

Especificación en el calendario

app.py compila la especificación a partir de los parámetros dados en get_specification(). En template puedes acceder a la especificación a través de la variable specification. La especificación está disponible para JavaScript como la variable specification.

Especificación en la página Index

La especificación por defecto está disponible antes de construir el calendario a través de JavaScript en la variable configuration.default_specification. Existe una función getSpecification() que crea la especificación a partir de las entradas. Generalmente, se debe utilizar la variable specification.

Arquitectura

A continuación encontraras una imagen de la arquitectura.

architecture

La base de un calendario son las especificaciones, dadas en sus diversas formas. Estas especificaciones influyen en todos los pasos.

Una vez compilado las condiciones, los archivos del calendario (ics) se descargan de las ubicaciones de Internet.

A partir de los archivos del calendario se generan los eventos.

A continuación, se eligen diferentes vistas para mostrar los eventos.

Al final, esto conlleva cambios en el HTML y el estilo de la página web del calendario.

En la aplicación real, estos pasos están un poco mezclados y desordenados u omitidos, pero esto explica simplemente la idea básica e inicial detrás del procesamiento de eventos.