Hallo Leute,
eine REST App nimmt ein PUT-Request entgegen. Dieser beinhaltet einen Unix-Timestamp.
Nun möchte ich diesen Parameter gerne optional machen. Wird ein Timestamp übergeben, soll dieser anhand der hinterlegten Regeln validiert werden. Wird kein Timestamp übergeben, soll die App eins erzeugen.
# testing
"PUT /tracking/123456789" erzeugt einen Fehler da nur 9 Zeichen
"PUT /tracking/12345678901234" erzeugt einen Fehler da nur >13 Zeichen
"PUT /tracking/1234567890" klappt
Nun soll folgender Request auch funktionieren
"PUT /tracking/"
In diesem Fall sollte Symfony den "default timestamp" mit dem Wert "0" nehmen. Klappt aber nicht. Es gibt eine Fehlermeldung "No route found for "PUT /tracking/"
Hoffentlich könnt ihr mir helfen, eigentlich ganz easy^^
# routing
api_add_entry:
path: /tracking/{!timestamp}
controller: App\Controller\MainController::addEntry
defaults:
timestamp: 0
requirements:
timestamp: '\d+'
methods: [PUT]
# validation
App\Usecase\AddEntity\AddEntityRequest:
properties:
timestamp:
- Length:
min: 10
max: 13