我使用guzzle作为http客户端来测试我的symfony api。
有一个url选项在留档,但我如何通过userid
当我用curl测试的时候
curl-i-X删除http://localhost/us/serenify/web/app_dev.php/userapi/delete/1/6
我的api运行良好,显示了适当的响应。
但是我不能用guzzle测试它,因为我找不到传递参数的选项。
下面是一个定义并执行Symfony路由的示例:
{
"operations": {
"deleteEntity": {
"httpMethod": "DELETE",
"uri": "/userapi/delete/{userid}/{apiid}",
"summary": "Deletes an entity",
"parameters": {
"userid": {
"location": "query"
},
"apiid": {
"location": "query"
}
}
}
}
}
和代码:
class MyApi
{
protected $client;
public function __construct(ClientInterface $client, $baseUrl)
{
$this->client = $client;
//tell the client what the base URL to use for the request
$this->client->setBaseUrl($baseUrl);
//fill the client with all the routes
$description = ServiceDescription::factory("/path/to/routes.json");
$this->client->setDescription($description);
}
public function deleteEntity($userId, $apiId)
{
$params = array(
'userid' => $userId,
'apiid' => $apiId
);
$command = $this->client->getCommand('deleteEntity', $params);
$command->prepare();
$response = $this->client->execute($command);
return $response;
}
}
$client = new Guzzle\Service\Client();
$api = new MyApi($client, ' http://localhost/us/serenify/web/app_dev.php');
$api->deleteEntity(1, 6);
现在,就目前的情况而言,生成的路由看起来像
http://localhost/us/serenify/web/app_dev.php/userapi/delete?userid=1
如果您不希望Guzzle将参数作为查询参数传递,而是像URL参数一样传递,那么您所要做的就是将JSON定义文件中的参数类型从query更改为uri。
PS:我没有测试上面的代码。可能是现成的,也可能不是。可能需要进行一些小的调整。
我正试图在post请求负载中传递数组。 有效载荷: 我所做的是: 但我得到的回应是: “找不到请求数据”
问题内容: 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前按照以下方式进行操作,但是我敢肯定有一种更清洁的方法,不需要我手动编码。 我已经看到了将查询字符串参数作为数组传递的示例,但是我看到的这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$ .ajax()格式,因为这是我习惯的格式(没有特别好的理由-只是个人喜好)。 编辑09/04/2013: 在我的问题结束(如“太过
我应该如何在jQuery Ajax请求中传递查询字符串值?我目前是这样做的,但我肯定有一个更干净的方法,不需要我手动编码。 我见过查询字符串参数作为数组传递的示例,但这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$.ajax()格式,因为这是我习惯的格式(没有特别好的理由--只是个人偏好)。 编辑09/04/2013: 在我的问题结束后(因为“太本地化”),我发现了一个相关的(相同的)问
问题内容: 以下是我的Ajax 请求: 除了之外,还有其他传递数据的方法吗? 问题答案: 阅读此错误问题:http : //bugs.jquery.com/ticket/11586 引用 RFC 2616字段 该方法请求原始服务器删除 由Request-URI标识 的资源。 因此,您需要在URI中传递数据
我的删除请求是 以下是我的帖子,并得到工作正常的请求。 我没有收到删除请求的问题。我正在使用guzzle 6和laravel 5.2(客户端)
问题内容: 我已经按照此链接中所述的教程进行操作。在下面的代码中,由于某种原因,数据不会作为参数附加到url上,但是如果我使用它直接将其设置为url 则可以。 问题答案: 对于简单的情况,我建议您使用jQuery 的或语法: 如果您需要捕获失败案例,请执行以下操作: 此外,如果您始终发送JSON字符串,则可以在最后使用$ .getJSON 或$ .post以及另一个参数。