Yii REST POST 在 POSTMAN 中不工作,但在框架中工作

Posted

技术标签:

【中文标题】Yii REST POST 在 POSTMAN 中不工作,但在框架中工作【英文标题】:Yii REST POST is not working in POSTMAN but in Framework 【发布时间】:2015-11-08 16:35:17 【问题描述】:

我如何将表单发布到 rest api 操作。或者我如何测试其余 api 以在数据库中创建包含所有字段值的记录。我们是否应该添加创建 aq queryStringUrl。如果它来自 POST 表单操作,则很好。但是这个 yii rest api 在 android 设备上调用时也应该可以工作。我在表单的帖子上使用了 $_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】:

没有代码示例,很难说您的应用出了什么问题。我认为首先如果你通过 GET 方法创建新项目,它不是 REST。在 REST API 中,新项目的创建通过 POST 方法进行(我对 URL 外观只字未提)。当我在某个项目中实现 REST 时,我在后端应用程序中创建了简单的方法,然后在前端(javascript 应用程序)上创建了用于向 API URL 发送请求的简单方法,当我准备发送标头时,然后根据我设置的 url方法到标头 GET、POST 或 PUT(没有 DELETE,因为我们不通过 API 删除项目)。所以这可能有点令人困惑......但我相信当你了解 REST 时,你会解决你的问题。

【讨论】:

如果新项目的创建是通过 POST 而不是 GET。 android API 实现者将如何仅使用自己的表单字段调用 api。他们是否应该在行动中使用与我在 tsting 相同的名称。使用 isset()。请注意我正在使用 yii2。以及我如何测试是否所有特定参数都传递给它。原谅它是一个最愚蠢的问题。谢谢。我已经添加了示例操作。

以上是关于Yii REST POST 在 POSTMAN 中不工作,但在框架中工作的主要内容,如果未能解决你的问题,请参考以下文章

远程服务器上的 YII 2 REST CORS 问题

yii2一次上传很多文件接口开发(yii自带的UploadedFile类+postman(多文件上传

如何使用 Postman 表单数据将 POST 请求发送到 Spring Boot REST API?

POST 请求适用于 Postman,但不适用于 axios.post()

Yii2重定向登录

postman为啥post数据传不过去get可以