php - How to set proper JSON response for POST method in RESTful API from FOSRestBundle? -


i making post method restful api. api built on top of fosrestbundle , nelmioapidoc may notice. not able validate when file not uploaded or when rid parameter missing , response proper json. doing:

/**  * set , upload avatar reps.  *  * @param paramfetcher $paramfetcher  * @param request $request  *  * @apidoc(  *      resource = true,  *      https = true,  *      description = "set , upload avatar reps.",  *      statuscodes = {  *          200 = "returned when successful",  *          400 = "returned when errors"  *      }  * )  *  * @requestparam(name="rid", nullable=false, requirements="\d+", description="the id of representative")  * @requestparam(name="avatar", nullable=false, description="the avatar file")  *  * @return view  */ public function postrepsavataraction(paramfetcher $paramfetcher, request $request) {     $view = view::create();     $uploadedfile = $request->files;      // not working never error if not upload file     if (empty($uploadedfile)) {         $view->setdata(array('error' => 'invalid or missing parameter'))->setstatuscode(400);         return $view;     }      $em = $this->getdoctrine()->getmanager();     $entreps = $em->getrepository('pdonebundle:representative')->find($paramfetcher->get('rid'));      if (!$entreps) {         $view->setdata(array('error' => 'object not found'))->setstatuscode(400);         return $view;     }      .... code      $repsdata = [];      $view->setdata($repsdata)->setstatuscode(200);      return $view; } 

if not upload file got response:

error: call member function move() on non-object 500 internal server error - fatalerrorexception 

but symfony exception error not json want , need, code never entering in if.

if not set rid got error:

request parameter "rid" empty 400 bad request - badrequesthttpexception 

but again symfony exception error , not json. how response proper json if rid not present or if file wasn't uploaded? advice?

$request->files instance of filebag. use $request->files->get('keyoffileinrequest') file.

rid specified required parameter, yeah, throws badrequesthttpexception if don't set it. behaves should. should try setting rid id isn't in database, should see own error message.

if want rid optional add default value rid:

* @requestparam(name="rid", nullable=false, requirements="\d+", default=0, description="the id of representative") 

something that. rid zero, repository::find call return null , error view returned. recommend keep is, proper behavior.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -