проверка данных multipart / form-data и FormType
Я строю API, используяFOSRestBundle и я нахожусь на этапе, когда мне нужно реализовать обработку создания новых объектов, которые содержат двоичные данные.
Следуя методам, изложенным наОтправка двоичных данных вместе с запросом REST APIотправка данных какmultipart/form-data
кажется наиболее практичным для нашей реализации из-за ~ 33% дополнительной пропускной способности, необходимой для Base64.
Вопрос
Как я могу настроить конечную точку REST для обработки файла в запросе и для проверки объекта в кодировке JSON при отправке данных какmultipart/form-data
?
Когда я просто отправлял сырой JSON, я использовал форму SymfonyhandleRequest
метод для проверки по обычаюFormType
, Например:
$form = $this->createForm(new CommentType(), $comment, ['method' => 'POST']);
$form->handleRequest($request);
if ($form->isValid()) {
// Is valid
}
Причина, по которой мне нравится этот подход, заключается в том, что я могу больше контролировать заполнение сущности в зависимости от того, является ли действие обновлением (PUT) или новым (POST).
Я понимаю, что SymfonyRequest
объект обрабатывает запрос так, что ранее данные JSON были быcontent
переменная, но теперь имеет ключrequest->parameters->[form key]
и файлы в пакете (request->files
).