validação multipart / form-data e FormType
Estou construindo uma API usando oFOSRestBundle e estou no estágio em que preciso implementar o tratamento da criação de novas entidades que contêm dados binários.
Seguindo os métodos descritos emEnviando dados binários junto com uma solicitação da API RESTenviando os dados comomultipart/form-data
é o mais prático para a nossa implementação devido à ~ 33% de largura de banda adicionada necessária para o Base64.
Pergunta, questão
Como posso configurar o terminal REST para manipular o arquivo na solicitação e executar a validação na entidade codificada em JSON ao enviar os dados comomultipart/form-data
?
Ao enviar o JSON bruto, uso o formulário do SymfonyhandleRequest
método para executar a validação com relação ao costumeFormType
. Por exemplo:
$form = $this->createForm(new CommentType(), $comment, ['method' => 'POST']);
$form->handleRequest($request);
if ($form->isValid()) {
// Is valid
}
O motivo de eu gostar dessa abordagem é para poder ter mais controle sobre a população da entidade, dependendo se a ação é uma atualização (PUT) ou nova (POST).
Eu entendo que o SymfonyRequest
O objeto lida com a solicitação de forma que anteriormente os dados JSON fossem oscontent
variável, mas agora é digitada emrequest->parameters->[form key]
e os arquivos dentro do saco de arquivos (request->files
)