我正在尝试创建一个使用POST
在我的数据库中创建新对象的REST API。我正在使用Slim框架。
问题是我不确定在我的< code>POST方法的这些行中到底应该放些什么:
$app->response->headers->set("Content-type","application/json");
$app->response->status(200);
$app->response->body(json_encode(**Here they put the name of the type of the object that they have in their database**));
我的完整POST
路由是:
$app->post("/cars/", function() use($app)
{
$idCar = $app->request->post("idCar");
$name = $app->request->post("name");
try{
$connection = getConnection();
$dbh = $connection->prepare("INSERT INTO cars VALUES(?,?)");
$dbh->bindParam(1,$idCar);
$dbh->bindParam(2,$name);
$dbh->execute();
$connection = null;
$app->response->headers->set("Content-type","application/json");
$app->response->status(200);
$app->response->body(json_encode(**What I have to put here?**));
}catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
});
在表< code>cars中有对象< code>Car。
我应该这样说吗?:
$app->response->headers->set("Content-type","application/json");
$app->response->status(200);
$app->response->body(json_encode($Car));
我有点困惑,因为在我之前看到的教程中,在POST
方法中,他们没有任何对POST
路由中变量名称的引用。例如,如果他们使用$水果
,他们没有在其路由中声明任何名为$水果
的变量。
我该怎么办?我的答案正确吗?
简单的答案是,你可以把你想要的任何东西放在你的回答中。看到这个问题。
这是一个设计问题,而不是“正确”的问题。您应该问自己打算如何使用API。一旦消费者创建了对象,他们是否需要一种方便的方式来再次访问它(而无需根据其他一些标准查找它)?在这种情况下,您可能只想返回您在响应中创建的对象的id
。您也可以在响应中返回整个对象,但要小心——在某些情况下,Car
的数据库表示中可能存在最终用户不应该使用的内容。例如,也许他们应该看到Car
的name
、make
和模型
,但不是它的buyerSocial alSecurityNumber
。
在任何情况下,在使用另一个查询运行INSERT
查询之后,都需要获取任何附加信息。例如,假设有更多的信息,而不仅仅是id
和name
,我可以这样做:
$connection = getConnection();
$dbh = $connection->prepare("INSERT INTO cars VALUES(?,?)");
$dbh->bindParam(1,$idCar);
$dbh->bindParam(2,$name);
$dbh->execute();
$newCarId = $dbh->lastInsertId();
$car = $dbh->query("SELECT * FROM cars WHERE id = $newCarId");
$connection = null;
$app->response->headers->set("Content-type","application/json");
$app->response->status(200);
$app->response->body(json_encode($car));
请注意,在这种情况下,将$newCarId
直接插入查询是安全的,因为它是受信任的内容——即不是用户输入。
因此,我试图使用wiremck向带有请求正文的URL发出后请求,然后使用我的respons.json文件返回响应。(自定义响应) 我就是这样设置的,但我似乎找不到任何关于如何设置带有请求主体的post存根(包含数据,比如说尝试创建ID),然后检索自定义响应主体(从json文件创建ID响应)的信息。我该怎么设置呢。我尝试通过json文件请求生成id,然后尝试检索创建的id。 WithBodyFile
我一直试图向facebook发送HTTP POST请求,但没有成功。我从服务器收到以下响应: HTTP/1.1 400不良请求内容-类型:text/html;charset=utf-8日期:2016年12月10日星期六21:28:17 GMT连接:关闭内容-长度:2959 Facebook |错误 抱歉,出了点问题,我们正在修理,会尽快修好的 我的密码 我做错了什么?
问题内容: 我提出的问题可能更多是与浏览器相关的问题,但是当我冒险构建Web应用程序时,我也想找到答案。 在我的客户端代码中,我正在打电话。该帖子可能需要一段时间才能回复。我看到的是经过一定时间后再次发送请求。 我以为是我的电话再次发送了,但是无论我在服务器上看到多少次POST请求,我都只会看到一次回调。我相当确定我的代码不会多次发送,因此我认为浏览器会重试吗? 我知道我的服务器在运行Wiresh
嗨,我正在通过axios尝试reactjs POST请求,但出现错误,我查看了所有文档,但错误未得到解决。 这是我的错误: 未捕获(promise中)错误:请求在XMLHttpRequest的结算(eval at(bundle.js:4621),:15:15)处的createError(eval at(bundle.js:4615),:18:12)处失败,状态代码为400。手工装载(在(捆js:4
我正在尝试调用post请求将文件上载到Archer。请在下面找到我的代码: 我收到以下错误:b'{“消息”:“请求包含实体正文,但没有内容类型标头。此资源不支持推断的媒体类型“应用程序/八位字节流”,“ExceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为“application/octet stream\”的内容中读取类型为“AttachmentWrap
问题内容: 我有一个包含表单(帖子)的html。单击某些提交按钮时,我会收到JSON响应。 如何获取此JSON? 如果我不截取请求,则json将显示在Web视图上,所以我想应该使用(我正在使用API 12),但是我不知道如何在其中获取json。 还是有更好的方法,例如拦截响应而不是请求? 谢谢 问题答案: 您应该重写的方法