Multipart- / Formulardaten- und FormType-Validierung

Ich baue eine API mit demFOSRestBundle und bin in der Phase, in der ich die Handhabung der Erstellung neuer Entitäten implementieren muss, die binäre Daten enthalten.

Befolgen Sie die am angegebenen MethodenSenden von Binärdaten zusammen mit einer REST-API-AnforderungSenden der Daten alsmultipart/form-data Aufgrund der zusätzlichen Bandbreite von ca. 33%, die für Base64 erforderlich ist, ist dies für unsere Implementierung am praktischsten.

Frage

Wie kann ich den REST-Endpunkt so konfigurieren, dass er sowohl die Datei in der Anforderung verarbeitet als auch eine Validierung für die JSON-codierte Entität durchführt, wenn die Daten gesendet werden alsmultipart/form-data?

Wenn ich nur den unformatierten JSON-Code gesendet habe, habe ich das Formular von Symfony verwendethandleRequest Methode zum Durchführen einer Validierung anhand der BenutzerdefinitionFormType. Zum Beispiel:

$form = $this->createForm(new CommentType(), $comment, ['method' => 'POST']);
$form->handleRequest($request);

if ($form->isValid()) {

  // Is valid

}

Der Grund, warum ich diesen Ansatz mag, ist, dass ich mehr Kontrolle über die Grundgesamtheit der Entität haben kann, abhängig davon, ob es sich bei der Aktion um ein Update (PUT) oder ein neues (POST) handelt.

Ich verstehe das SymfonyRequest Das Objekt behandelt die Anforderung so, dass zuvor die JSON-Daten diecontent variabel, ist aber jetzt unter getastetrequest->parameters->[form key] und die Dateien in der Aktentasche (request->files).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage