228 lines
6.7 KiB
JSON
228 lines
6.7 KiB
JSON
{
|
|
"openapi": "3.0.3",
|
|
"info": {
|
|
"title": "Elpatrons Datumsrechner API",
|
|
"version": "1.0.0",
|
|
"description": "REST-API für Datumsberechnungen."
|
|
},
|
|
"servers": [
|
|
{ "url": "/api" }
|
|
],
|
|
"paths": {
|
|
"/tage_werktage": {
|
|
"post": {
|
|
"summary": "Berechnet die Anzahl der Tage oder Werktage zwischen zwei Daten.",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"start": { "type": "string", "format": "date" },
|
|
"end": { "type": "string", "format": "date" },
|
|
"werktage": { "type": "boolean", "default": false },
|
|
"bundesland": {
|
|
"type": "string",
|
|
"description": "Bundesland-Kürzel für Feiertagsberücksichtigung (nur bei werktage=true)",
|
|
"enum": ["BW", "BY", "BE", "BB", "HB", "HH", "HE", "MV", "NI", "NW", "RP", "SL", "SN", "ST", "SH", "TH"]
|
|
}
|
|
},
|
|
"required": ["start", "end"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Ergebnis der Berechnung.",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"result": { "type": "integer" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": { "description": "Ungültige Eingabe" }
|
|
}
|
|
}
|
|
},
|
|
"/wochentag": {
|
|
"post": {
|
|
"summary": "Gibt den Wochentag zu einem Datum zurück.",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"datum": { "type": "string", "format": "date" }
|
|
},
|
|
"required": ["datum"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Wochentag als Text.",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"result": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": { "description": "Ungültige Eingabe" }
|
|
}
|
|
}
|
|
},
|
|
"/kw_berechnen": {
|
|
"post": {
|
|
"summary": "Berechnet die Kalenderwoche zu einem Datum.",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"datum": { "type": "string", "format": "date" }
|
|
},
|
|
"required": ["datum"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Kalenderwoche und Jahr.",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"result": { "type": "string" },
|
|
"kw": { "type": "integer" },
|
|
"jahr": { "type": "integer" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": { "description": "Ungültige Eingabe" }
|
|
}
|
|
}
|
|
},
|
|
"/kw_datum": {
|
|
"post": {
|
|
"summary": "Berechnet Start- und Enddatum einer Kalenderwoche.",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"jahr": { "type": "integer" },
|
|
"kw": { "type": "integer" }
|
|
},
|
|
"required": ["jahr", "kw"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Start- und Enddatum der Kalenderwoche.",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"result": { "type": "string" },
|
|
"start": { "type": "string", "format": "date" },
|
|
"end": { "type": "string", "format": "date" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": { "description": "Ungültige Eingabe" }
|
|
}
|
|
}
|
|
},
|
|
"/plusminus": {
|
|
"post": {
|
|
"summary": "Berechnet ein Datum plus/minus X Tage, Wochen oder Monate.",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"datum": { "type": "string", "format": "date" },
|
|
"anzahl": { "type": "integer" },
|
|
"einheit": { "type": "string", "enum": ["tage", "wochen", "monate"] },
|
|
"richtung": { "type": "string", "enum": ["add", "sub"], "default": "add" },
|
|
"werktage": { "type": "boolean", "default": false }
|
|
},
|
|
"required": ["datum", "anzahl", "einheit"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Berechnetes Datum.",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"result": { "type": "string", "format": "date" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": { "description": "Ungültige Eingabe" }
|
|
}
|
|
}
|
|
},
|
|
"/monitor": {
|
|
"get": {
|
|
"summary": "Status- und Monitoring-Informationen zur App.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Status-Objekt mit Uptime und Pageviews.",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": { "type": "string" },
|
|
"message": { "type": "string" },
|
|
"time": { "type": "string", "format": "date-time" },
|
|
"uptime_seconds": { "type": "integer" },
|
|
"pageviews_last_7_days": { "type": "integer" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |