/v2/auth/trainer-courseFormularauswahl und eigene Trainerangebote lesen
Liest Trainername, Kontoformate, Kategorien der zweiten Stammstruktur, Tags, aktive Orte/Räume sowie höchstens 200 vom Trainer erstellte Angebote. Der persönliche Bearer-Code ersetzt den gewöhnlichen Kontokontext. Die Antwort ist vertraulich und wird mit no-store/private und no-referrer ausgeliefert. Ein ungültiger Code erhöht den IP-Fehlversuchszähler; nach fünf Fehlversuchen innerhalb einer Stunde wird die IP eine Stunde gesperrt. Gültige Codes setzen frühere Fehlversuche nicht zurück.
Operation-ID get_v2_auth_trainer_course
Vertrag & Verhalten
- Dokumentationsstand
- reviewed
- Ändert Zustand
- Ja
- Als readOnly markiert
- Nein
- Für Automation markiert
- Nein
Dieser GET-Aufruf kann Zustand verändern. Die HTTP-Methode allein kennzeichnet hier keinen reinen Lesezugriff.
maintenance
Authentifizierung
Alle folgenden Security-Schemas werden gemeinsam benötigt (UND).
Erforderliche Schemas
trainerTokenhttp · bearerDedicated revocable trainer-course token; not a normal account JWT.
Security-Schema als JSON
{
"type": "http",
"scheme": "bearer",
"description": "Dedicated revocable trainer-course token; not a normal account JWT."
}Parameter
Header
languageoptionalAccount language code, where the resource supports setLanguage().
Schema-Beispiel
"de"Vollständiges Schema als JSON
{
"type": "string",
"examples": [
"de"
]
}AuthorizationerforderlichPersönlicher Trainer-Bearer-Code aus der administrativ verwalteten Freigabe; kein gewöhnlicher V2-Admin-Token.
- pattern
"^Bearer [A-Za-z0-9_-]{43}$"
Vollständiges Schema als JSON
{
"type": "string",
"pattern": "^Bearer [A-Za-z0-9_-]{43}$"
}Request Body
Kein Request Body in der Spezifikation beschrieben.
Antworten
9HTTP-Status und Antwortinhalt gemeinsam auswerten. In dieser API können auch Antworten mit HTTP 200 einen Fehler enthalten.
200application/json
data enthält settings, trainer sowie Auswahl- und Angebotslisten. Alle IDs verwenden das jeweilige öffentliche v2-Format.
application/json
success boolean error boolean | string error_code string data object settings object format_date integer format_time integer firstweekday integer format_timezone string language string Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
trainer object name string Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
categories array Array-Elemente
id string Öffentliche v2-ID; Beispiel ist synthetisch.
- pattern
"^category_[a-f0-9]{12}_-?[0-9]+$"
Schema-Beispiel
"category_012345abcdef_123456"name string Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
tags array Array-Elemente
id string Öffentliche v2-ID; Beispiel ist synthetisch.
- pattern
"^tag_[a-f0-9]{12}_-?[0-9]+$"
Schema-Beispiel
"tag_012345abcdef_123456"name string Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
places array Array-Elemente
id string Öffentliche v2-ID; Beispiel ist synthetisch.
- pattern
"^place_[a-f0-9]{12}_-?[0-9]+$"
Schema-Beispiel
"place_012345abcdef_123456"name string Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
rooms array Array-Elemente
id string Öffentliche v2-ID; Beispiel ist synthetisch.
- pattern
"^room_[a-f0-9]{12}_-?[0-9]+$"
Schema-Beispiel
"room_012345abcdef_123456"place string Öffentliche v2-ID; Beispiel ist synthetisch.
- pattern
"^place_[a-f0-9]{12}_-?[0-9]+$"
Schema-Beispiel
"place_012345abcdef_123456"name string Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
courses array Array-Elemente
id string Öffentliche v2-ID; Beispiel ist synthetisch.
- pattern
"^offer_[a-f0-9]{12}_-?[0-9]+$"
Schema-Beispiel
"offer_012345abcdef_123456"name string number string date_start string | boolean ISO-8601 mit Offset, false ohne gültiges Datum.
status integer Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
type string Zusätzliche, hier nicht aufgeführte Felder sind erlaubt.
Vollständiges Schema als JSON
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"error": {
"type": [
"boolean",
"string"
]
},
"error_code": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"settings": {
"type": "object",
"properties": {
"format_date": {
"type": "integer"
},
"format_time": {
"type": "integer"
},
"firstweekday": {
"type": "integer"
},
"format_timezone": {
"type": "string"
},
"language": {
"type": "string"
}
},
"additionalProperties": true
},
"trainer": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": true
},
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^category_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"category_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^tag_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"tag_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"places": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^place_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"place_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"rooms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^room_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"room_012345abcdef_123456"
]
},
"place": {
"type": "string",
"pattern": "^place_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"place_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"courses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^offer_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"offer_012345abcdef_123456"
]
},
"name": {
"type": "string"
},
"number": {
"type": "string"
},
"date_start": {
"type": [
"string",
"boolean"
],
"description": "ISO-8601 mit Offset, false ohne gültiges Datum."
},
"status": {
"type": "integer"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
},
"type": {
"type": "string"
}
},
"additionalProperties": true
}Beispiel
{
"success": true,
"error": false,
"data": {
"settings": {
"format_date": 0,
"format_time": 0,
"firstweekday": 1,
"format_timezone": "Europe/Zurich",
"language": "de"
},
"trainer": {
"name": "Beispiel Trainer"
},
"categories": [
{
"id": "category_012345abcdef_123456",
"name": "Kurse"
}
],
"tags": [],
"places": [],
"rooms": [],
"courses": []
}
}400application/json
Invalid request.
application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED40006"
}401application/json
Missing/expired token, missing account context, account paused or model-specific authorization failure.
application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED40103"
}402application/json
Missing/invalid action data or subscription/operation restriction.
application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED80100"
}403application/json
Permission denied. Browser CORS rejection may have an empty body.
application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED40340"
}404application/json
Unknown resource/action or unsupported method.
application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED80019"
}422application/json
Validation failed.
application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED80020"
}429application/json
Request/login rate limit exceeded. Honor Retry-After when supplied; legacy rate-limit paths may omit it. Retry only proven reads within a bounded deadline; a mutation is never automatically replayed after an ambiguous response.
Response Header
Retry-After
Optional server delay in whole seconds or an HTTP date. Absence is not permission for an immediate retry.
Schema-Beispiel
"30"Vollständiges Schema als JSON
{
"type": "string",
"examples": [
"30"
]
}application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED42902"
}502application/json
Server-side operation failed.
application/json
Kein Schema angegeben. Daraus lässt sich kein vollständiger Feldvertrag ableiten.
Beispiel
{
"success": false,
"error": "ED50201"
}Quelle & Metadaten
application/models/v2/Trainercourse.php:88handlePublicRequest()Diese Angaben stammen unverändert aus der gelieferten OpenAPI-Datei. Zusätzliche Freigaben, Vorbedingungen, sensible Felder und Hinweise stehen in den Erweiterungen.
x-edoobox-mutates-state
truex-edoobox-runtimeMutationGuard
falsex-edoobox-get-effect
"maintenance"x-edoobox-documentationReview
{
"file": "docs/openapi/operation-contracts/10-other-resources.json",
"notes": []
}x-edoobox-source
{
"file": "application/models/v2/Trainercourse.php",
"method": "handlePublicRequest",
"line": 88
}x-edoobox-documentationStatus
"reviewed"x-edoobox-readOnly
falsex-edoobox-safeForAutomation
falsex-edoobox-permission
{
"resource": "trainer-course",
"short": null,
"checkedByDispatcher": false,
"levels": [],
"description": "No account-JWT resource permission levels are applied. Authentication requirements, if any, are defined by this route source-specific boundary and dedicated security scheme."
}Vollständige Operation als JSON
{
"operationId": "get_v2_auth_trainer_course",
"summary": "Formularauswahl und eigene Trainerangebote lesen",
"description": "Liest Trainername, Kontoformate, Kategorien der zweiten Stammstruktur, Tags, aktive Orte/Räume sowie höchstens 200 vom Trainer erstellte Angebote. Der persönliche Bearer-Code ersetzt den gewöhnlichen Kontokontext. Die Antwort ist vertraulich und wird mit no-store/private und no-referrer ausgeliefert. Ein ungültiger Code erhöht den IP-Fehlversuchszähler; nach fünf Fehlversuchen innerhalb einer Stunde wird die IP eine Stunde gesperrt. Gültige Codes setzen frühere Fehlversuche nicht zurück.",
"tags": [
"trainer-course"
],
"security": [
{
"trainerToken": []
}
],
"parameters": [
{
"name": "language",
"in": "header",
"required": false,
"description": "Account language code, where the resource supports setLanguage().",
"schema": {
"type": "string",
"examples": [
"de"
]
}
},
{
"name": "Authorization",
"in": "header",
"required": true,
"schema": {
"type": "string",
"pattern": "^Bearer [A-Za-z0-9_-]{43}$"
},
"description": "Persönlicher Trainer-Bearer-Code aus der administrativ verwalteten Freigabe; kein gewöhnlicher V2-Admin-Token."
}
],
"responses": {
"200": {
"description": "data enthält settings, trainer sowie Auswahl- und Angebotslisten. Alle IDs verwenden das jeweilige öffentliche v2-Format.",
"content": {
"application/json": {
"example": {
"success": true,
"error": false,
"data": {
"settings": {
"format_date": 0,
"format_time": 0,
"firstweekday": 1,
"format_timezone": "Europe/Zurich",
"language": "de"
},
"trainer": {
"name": "Beispiel Trainer"
},
"categories": [
{
"id": "category_012345abcdef_123456",
"name": "Kurse"
}
],
"tags": [],
"places": [],
"rooms": [],
"courses": []
}
},
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"error": {
"type": [
"boolean",
"string"
]
},
"error_code": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"settings": {
"type": "object",
"properties": {
"format_date": {
"type": "integer"
},
"format_time": {
"type": "integer"
},
"firstweekday": {
"type": "integer"
},
"format_timezone": {
"type": "string"
},
"language": {
"type": "string"
}
},
"additionalProperties": true
},
"trainer": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": true
},
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^category_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"category_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^tag_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"tag_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"places": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^place_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"place_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"rooms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^room_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"room_012345abcdef_123456"
]
},
"place": {
"type": "string",
"pattern": "^place_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"place_012345abcdef_123456"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"courses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^offer_[a-f0-9]{12}_-?[0-9]+$",
"description": "Öffentliche v2-ID; Beispiel ist synthetisch.",
"examples": [
"offer_012345abcdef_123456"
]
},
"name": {
"type": "string"
},
"number": {
"type": "string"
},
"date_start": {
"type": [
"string",
"boolean"
],
"description": "ISO-8601 mit Offset, false ohne gültiges Datum."
},
"status": {
"type": "integer"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
},
"type": {
"type": "string"
}
},
"additionalProperties": true
}
}
}
},
"400": {
"description": "Invalid request.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED40006"
}
}
}
},
"401": {
"description": "Missing/expired token, missing account context, account paused or model-specific authorization failure.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED40103"
}
}
}
},
"402": {
"description": "Missing/invalid action data or subscription/operation restriction.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED80100"
}
}
}
},
"403": {
"description": "Permission denied. Browser CORS rejection may have an empty body.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED40340"
}
}
}
},
"404": {
"description": "Unknown resource/action or unsupported method.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED80019"
}
}
}
},
"422": {
"description": "Validation failed.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED80020"
}
}
}
},
"429": {
"description": "Request/login rate limit exceeded. Honor Retry-After when supplied; legacy rate-limit paths may omit it. Retry only proven reads within a bounded deadline; a mutation is never automatically replayed after an ambiguous response.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED42902"
}
}
},
"headers": {
"Retry-After": {
"description": "Optional server delay in whole seconds or an HTTP date. Absence is not permission for an immediate retry.",
"schema": {
"type": "string",
"examples": [
"30"
]
}
}
}
},
"502": {
"description": "Server-side operation failed.",
"content": {
"application/json": {
"example": {
"success": false,
"error": "ED50201"
}
}
}
}
},
"x-edoobox-mutates-state": true,
"x-edoobox-runtimeMutationGuard": false,
"x-edoobox-get-effect": "maintenance",
"x-edoobox-documentationReview": {
"file": "docs/openapi/operation-contracts/10-other-resources.json",
"notes": []
},
"x-edoobox-source": {
"file": "application/models/v2/Trainercourse.php",
"method": "handlePublicRequest",
"line": 88
},
"x-edoobox-documentationStatus": "reviewed",
"x-edoobox-readOnly": false,
"x-edoobox-safeForAutomation": false,
"x-edoobox-permission": {
"resource": "trainer-course",
"short": null,
"checkedByDispatcher": false,
"levels": [],
"description": "No account-JWT resource permission levels are applied. Authentication requirements, if any, are defined by this route source-specific boundary and dedicated security scheme."
}
}