refactored
This commit is contained in:
12
api/assets/demoassets.yml
Normal file
12
api/assets/demoassets.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
# Ordnerpfade, die über den tibi-server direkt erreichbar seien sollen,
|
||||
# können über den "path" relativ zur "config.yml" definiert werden.
|
||||
# Durch die "name"-Definition werden diese Pfade eindeutig unterschieden.
|
||||
# Für folgende Beispielangaben bildet sich folgende URL:
|
||||
#
|
||||
# TIBI-SERVER-URL/api/v1/_/NAMESPACE/assets/_dist_/
|
||||
#
|
||||
# Jeder Zugriff wird intern umgeleitet auf ../frontend/_dist_/
|
||||
# (relativ zur "config.yml").
|
||||
# Es ist ausschließlich ein unbeschränkter Lesezugriff (GET-Methode) möglich.
|
||||
name: _dist_
|
||||
path: ../frontend/_dist_
|
||||
@@ -2,24 +2,110 @@
|
||||
# /_/demo/democol
|
||||
name: democol
|
||||
|
||||
# Standardsprache für Text-Index in der Datenbank
|
||||
defaultLanguage: de
|
||||
|
||||
# Enthält die Kollektion Felder vom Typ "file", so werden die
|
||||
# hochgeladenen Dateien unter dem Ordner abgelegt, der mit
|
||||
# "uploadPath" bestimmt wird.
|
||||
uploadPath: ../media/democol
|
||||
|
||||
# Wie auch in der Top-Level-Konfig "config.yml" ist auch hier ein
|
||||
# "meta" Objekt möglich und nötig für die Konfiguration des
|
||||
# tibi-admin.
|
||||
# Mögliche Angaben werden im seperaten Kapitel behandelt.
|
||||
meta: !include democol/meta.yml
|
||||
# "fields" stellen die Eigentliche Struktur der Kollektion dar.
|
||||
# "fields" ist als Array angelegt um eine Standard-Sortierung
|
||||
# im tibi-admin vorzugeben.
|
||||
fields:
|
||||
# Das Einbinden von Feldern über extra Dateien bietet sich nur
|
||||
# an, wenn das jeweilige Feld mehrfach von dieser oder anderen
|
||||
# Kollektionen verwendet wird.
|
||||
# Auf die möglichen Definitionen wird im Kapitel "fields"
|
||||
# eingegangen.
|
||||
- !include fields/title.yml
|
||||
- !include fields/date.yml
|
||||
- !include fields/type.yml
|
||||
|
||||
# "imageFilter" definieren Filter, die Bilder bearbeiten, wie
|
||||
# z.B. Verkleinerung.
|
||||
# Mögliche Angaben werden im seperaten Kapitel behandelt.
|
||||
imageFilter: !include democol/imageFilter.yml
|
||||
# Neben der Definition der Indexe innerhalbd des Feld-Objektes selbst,
|
||||
# ist die Index-Definition global für die Kollektion auch hier möglich.
|
||||
# Diese Definition ist z.B. für zusammengesetzte Index-Typen notwendig.
|
||||
# Außerdem sind hier feinere Einstellungen für den Index möglich.
|
||||
|
||||
# Mehr dazu im "indexes" Kapitel
|
||||
indexes:
|
||||
- !include democol/textindex.yml
|
||||
|
||||
# Standardsprache für Text-Index in der Datenbank
|
||||
defaultLanguage: de
|
||||
|
||||
# "hooks" definieren die Algorithmen, die Daten und Abläufe zu bestimmten
|
||||
# HTTP-Methoden und Schritten der API manipulieren können.
|
||||
hooks:
|
||||
# Hooks für die Methode "get"
|
||||
get:
|
||||
# "read"-Schritt wird ausgeführt, bevor die Daten von der Datenbank
|
||||
# gelesen werden.
|
||||
read:
|
||||
# "type" ist derzeit immer "javascript"
|
||||
type: javascript
|
||||
# "file" zeigt auf die Datei mit dem Javascript-Code relativ zum
|
||||
# Ordner der "config.yml" Datei.
|
||||
file: hooks/democol/get_read.js
|
||||
# "return"-Schritt wird ausgeführt, bevor die gelesenen Daten über
|
||||
# HTTP übertragen werden.
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/get_return.js
|
||||
|
||||
# Hooks für die Methode "post"
|
||||
post:
|
||||
# "bind" wird ausgeführt, bevor die übertragenen Daten in eine
|
||||
# Objekt-Struktur umgewandelt werden.
|
||||
# Der tibi-server erwarten nach diesem Schritt gültige JSON-Daten,
|
||||
# d.h. sollte es möglich gemacht werden, dass andere Daten übertragen
|
||||
# werden, sind diese in diesem Hook abzufangen und zu verarbeiten.
|
||||
bind:
|
||||
type: javascript
|
||||
file: hooks/democol/post_bind.js
|
||||
# "validate" wird ausgeführt, bevor die Daten validiert werden.
|
||||
validate:
|
||||
type: javascript
|
||||
file: hooks/democol/post_validate.js
|
||||
# "create" wird ausgeführt, bevor das Objekt/Dokument in der Datenbank
|
||||
# angelegt wird.
|
||||
create:
|
||||
type: javascript
|
||||
file: hooks/democol/post_create.js
|
||||
# "return" wird ausgeführt, bevor die Serverantwort über HTTP
|
||||
# übertragen wird.
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/post_return.js
|
||||
|
||||
# Hooks für die Methode "put"
|
||||
put:
|
||||
bind:
|
||||
type: javascript
|
||||
file: hooks/democol/put_bind.js
|
||||
validate:
|
||||
type: javascript
|
||||
file: hooks/democol/put_validate.js
|
||||
# "bind" und "validate" habe die gleiche Bedeutung wie Hooks der
|
||||
# Methode "post".
|
||||
# "update" wird ausgeführt bevor das Objekt in der Datenbank
|
||||
# aktualisiert wird.
|
||||
update:
|
||||
type: javascript
|
||||
file: hooks/democol/put_create.js
|
||||
# "return" wird auch hier vor der Serverantwort ausgeführt.
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/put_return.js
|
||||
|
||||
# Hooks für die Methode "delete"
|
||||
delete:
|
||||
# Der "delete"-Hook wird vor dem eigentlichen Löschen ausgeführt
|
||||
delete:
|
||||
type: javascript
|
||||
file: hooks/democol/delete_delete.js
|
||||
# "return"-Hook kann ebenso hier die Serverantwort manipulieren
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/delete_return.js
|
||||
|
||||
# Projektionen der Daten werden via GET-Parameter "projection=..."
|
||||
# referenziert.
|
||||
@@ -115,98 +201,13 @@ permissions:
|
||||
put: true
|
||||
delete: true
|
||||
|
||||
# "hooks" definieren die Algorithmen, die Daten und Abläufe zu bestimmten
|
||||
# HTTP-Methoden und Schritten der API manipulieren können.
|
||||
hooks:
|
||||
# Hooks für die Methode "get"
|
||||
get:
|
||||
# "read"-Schritt wird ausgeführt, bevor die Daten von der Datenbank
|
||||
# gelesen werden.
|
||||
read:
|
||||
# "type" ist derzeit immer "javascript"
|
||||
type: javascript
|
||||
# "file" zeigt auf die Datei mit dem Javascript-Code relativ zum
|
||||
# Ordner der "config.yml" Datei.
|
||||
file: hooks/democol/get_read.js
|
||||
# "return"-Schritt wird ausgeführt, bevor die gelesenen Daten über
|
||||
# HTTP übertragen werden.
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/get_return.js
|
||||
# "imageFilter" definieren Filter, die Bilder bearbeiten, wie
|
||||
# z.B. Verkleinerung.
|
||||
# Mögliche Angaben werden im seperaten Kapitel behandelt.
|
||||
imageFilter: !include democol/imageFilter.yml
|
||||
|
||||
# Hooks für die Methode "post"
|
||||
post:
|
||||
# "bind" wird ausgeführt, bevor die übertragenen Daten in eine
|
||||
# Objekt-Struktur umgewandelt werden.
|
||||
# Der tibi-server erwarten nach diesem Schritt gültige JSON-Daten,
|
||||
# d.h. sollte es möglich gemacht werden, dass andere Daten übertragen
|
||||
# werden, sind diese in diesem Hook abzufangen und zu verarbeiten.
|
||||
bind:
|
||||
type: javascript
|
||||
file: hooks/democol/post_bind.js
|
||||
# "validate" wird ausgeführt, bevor die Daten validiert werden.
|
||||
validate:
|
||||
type: javascript
|
||||
file: hooks/democol/post_validate.js
|
||||
# "create" wird ausgeführt, bevor das Objekt/Dokument in der Datenbank
|
||||
# angelegt wird.
|
||||
create:
|
||||
type: javascript
|
||||
file: hooks/democol/post_create.js
|
||||
# "return" wird ausgeführt, bevor die Serverantwort über HTTP
|
||||
# übertragen wird.
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/post_return.js
|
||||
|
||||
# Hooks für die Methode "put"
|
||||
put:
|
||||
bind:
|
||||
type: javascript
|
||||
file: hooks/democol/put_bind.js
|
||||
validate:
|
||||
type: javascript
|
||||
file: hooks/democol/put_validate.js
|
||||
# "bind" und "validate" habe die gleiche Bedeutung wie Hooks der
|
||||
# Methode "post".
|
||||
# "update" wird ausgeführt bevor das Objekt in der Datenbank
|
||||
# aktualisiert wird.
|
||||
update:
|
||||
type: javascript
|
||||
file: hooks/democol/put_create.js
|
||||
# "return" wird auch hier vor der Serverantwort ausgeführt.
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/put_return.js
|
||||
|
||||
# Hooks für die Methode "delete"
|
||||
delete:
|
||||
# Der "delete"-Hook wird vor dem eigentlichen Löschen ausgeführt
|
||||
delete:
|
||||
type: javascript
|
||||
file: hooks/democol/delete_delete.js
|
||||
# "return"-Hook kann ebenso hier die Serverantwort manipulieren
|
||||
return:
|
||||
type: javascript
|
||||
file: hooks/democol/delete_return.js
|
||||
|
||||
# "fields" stellen die Eigentliche Struktur der Kollektion dar.
|
||||
# "fields" ist als Array angelegt um eine Standard-Sortierung
|
||||
# im tibi-admin vorzugeben.
|
||||
fields:
|
||||
# Das Einbinden von Feldern über extra Dateien bietet sich nur
|
||||
# an, wenn das jeweilige Feld mehrfach von dieser oder anderen
|
||||
# Kollektionen verwendet wird.
|
||||
# Auf die möglichen Definitionen wird im Kapitel "fields"
|
||||
# eingegangen.
|
||||
- !include fields/title.yml
|
||||
- !include fields/date.yml
|
||||
- !include fields/type.yml
|
||||
|
||||
# Neben der Definition der Indexe innerhalbd des Feld-Objektes selbst,
|
||||
# ist die Index-Definition global für die Kollektion auch hier möglich.
|
||||
# Diese Definition ist z.B. für zusammengesetzte Index-Typen notwendig.
|
||||
# Außerdem sind hier feinere Einstellungen für den Index möglich.
|
||||
# Mehr dazu im "indexes" Kapitel
|
||||
indexes:
|
||||
- !include democol/textindex.yml
|
||||
# Wie auch in der Top-Level-Konfig "config.yml" ist auch hier ein
|
||||
# "meta" Objekt möglich und nötig für die Konfiguration des
|
||||
# tibi-admin.
|
||||
# Mögliche Angaben werden im seperaten Kapitel behandelt.
|
||||
meta: !include democol/meta.yml
|
||||
@@ -28,6 +28,15 @@ meta:
|
||||
en: Pages
|
||||
|
||||
# "collections" ist eine Auflistung von Kollektions-Konfigurationen.
|
||||
# Hier bietet sich eine Auslagerung und Einbidnung via YAML-Tag "!include" an.
|
||||
# Hier bietet sich eine Auslagerung und Einbindung via YAML-Tag "!include" an.
|
||||
collections:
|
||||
- !include collections/democol.yml
|
||||
|
||||
# Unter "jobs" können Jobs definiert werden, die regelmäßig ausgeführt werden sollen.
|
||||
jobs:
|
||||
- !include jobs/demojob.yml
|
||||
|
||||
# Werden Dateien innerhalb vom tibi-admin benötigt, bietet es sich an diese über
|
||||
# "assets"-Pfade erreichbar zu machen.
|
||||
assets:
|
||||
- !include assets/demoasset.yml
|
||||
|
||||
0
api/jobs/demojob.js
Normal file
0
api/jobs/demojob.js
Normal file
14
api/jobs/demojob.yml
Normal file
14
api/jobs/demojob.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
# Jedem Job muss ein "cron" Eintrag zugeordnet werden, der die
|
||||
# Ausführungszeitpunkte definiert.
|
||||
# Das cron-Schema ist dem üblichen Linux cron-Schema nachempfunden.
|
||||
cron: "*/10 * * * *"
|
||||
|
||||
# "type" des Jobs ist derzeit immer "javascript" mit der "file"-Referenz
|
||||
# relativ zur "config.yml".
|
||||
type: javascript
|
||||
file: jobs/demojob.js
|
||||
|
||||
# Es können beliebige "meta"-Daten hinterlegt werden, die im Javascript
|
||||
# des Jobs über "context.job.meta" abgerufen werden können.
|
||||
meta:
|
||||
name: Demo Job
|
||||
Reference in New Issue
Block a user