Symfony 5 Routing mit Defaults
bearbeitet von
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
~~~