Yii REST POST在POSTMAN中不起作用,但在Framework中起作用

时间:2015-08-15 16:17:30

标签: rest post yii params postman

我怎么能将表格发布到其余的api动作中。或者我如何测试其余的api以在db中创建具有所有字段值的记录。我们应该添加create aq queryStringUrl吗?如果它从POST表单中执行就行了罚款。但是当在Android设备上调用时,这个yii rest api也应该工作。我在表单的帖子上使用了$ _Request,将其他工作放在哪里。如果我想在POSTMAN中测试相同,我该怎么办呢。 http://localhost/basic/web/site/create?fname=deepika&uname=deeps&email=deep@gmail.com&pwd=deepika&pwd_confirm=deepika&gender=female邮递员说404。但是在yii控制器url中工作这是我创建的动作     公共功能actionCreate()     {

  $params=$_REQUEST;
  //echo $params;
   $model= new UsersForm();

  if(isset($params['fname']))
    $fname=$params['fname'];


  if(isset($params['uname']))
    $uname=$params['uname'];

   if(isset($params['email']))
    $email=$params['email'];

   if(isset($params['pwd']))
    $pwd=$params['pwd'];

   if(isset($params['gender']))
    $gender=$params['gender'];

  if($fname == "" || $uname == "" || $email == "" || $pwd == "" || $gender == ""){
          $this->setHeader(400);
           echo "<pre>".json_encode(array('status'=>0,'error_code'=>400,'errors'=>"Something went wrong"),JSON_PRETTY_PRINT)."</pre>";
  }else{
          $model->fname = $fname;
          $model->uname =  $uname;
          $model->email = $email;
          $model->pwd =  $pwd;
          $model->pwd_confirm =  $pwd;
          $model->gender = $gender;

          if($model->save()){
              if($model->status == 0){
                  $mailSent = Yii::$app->mailer->compose()
                            ->setFrom("noreply@gmail.com")
                            ->setTo($model->email)
                            ->setSubject("Proceed by Verification")
                            ->setTextBody('Plain text content')
                            ->setHtmlBody('<b>HTML content</b>')
                            ->send();
                           // VarDumper::dump($mailSent, 10, true);die();
            }      
              $this->setHeader(200);
             echo "<pre>".json_encode(array('status'=>1,'success_code' => 200,'verification_mail'=>$mailSent,'message'=>'Registered Successfully'),JSON_PRETTY_PRINT)."</pre>";
          }else{
                $this->setHeader(400);
                 echo "<pre>".json_encode(array('status'=>0,'error_code'=>400,'errors'=>$model->errors),JSON_PRETTY_PRINT)."</pre>";
          }
  }

// VarDumper :: dump($ params,10,true); die();

}

1 个答案:

答案 0 :(得分:0)

如果没有代码示例,很难说您的应用中出现了什么问题。我想首先,如果你通过GET方法创建新项目,它不是REST。在REST API中,新项目的创建通过POST方法进行(我对URL外观没有任何说明)。当我在某个项目中实现REST时,我在后端应用程序中创建简单方法然后在前端(JavaScript应用程序)创建简单的方法来发送请求到API URL,当我准备要发送的标头,然后根据我设置的URL标头GET,POST或PUT的方法(没有DELETE因为我们没有deletin项目throgh API)。所以它可能有点令人困惑......但我相信当你得到关于REST的东西时,你将解决你的问题。