Jira AQL - REST API - PHP请求-忽略参数

vuktfyat  于 2023-03-16  发布在  PHP
关注(0)|答案(1)|浏览(124)

希望你们都没事,
我正在尝试对Jira执行一些自动化操作,现在我正在使用PHP执行API REST调用以返回ASSETS
我使用的文档如下:AQL API REST
文档中给出的PHP代码示例使用Unirest library
无论如何,这是我第一次尝试使用PHP执行API调用
我以前在Python 3中做过这件事,并且(使用Requests library
我正在使用的PHP项目使用CURL setpot function来执行API调用
所以,这是目前的情况和代码:
情境:我有一个名为Books的资产,其中有超过25个资产,因此,我必须使用PAGE参数(因为AQL API调用仅检索25个资产,从第1页开始)并进行迭代,直到获得所有的Books
当前代码:逻辑是正确的,PAGE参数随着每次迭代而增加,并在达到图书总数时停止,但是,API调用忽略了该参数,因此,PAGE 1被多次检索...
代码(我没有使用while循环来使它更长,只是API调用)

$assets_page = 1;

$ch = curl_init();
curl_setopt_array($ch, array
(
   CURLOPT_URL => 'https://api.atlassian.com/jsm/assets/workspace/xxxx-xxxx-xxxx-xxxx/v1/aql/objects?qlQuery=objectSchemaId=1%20AND%20objectTypeId=1',
   CURLOPT_USERPWD => 'username:token',
   CURLOPT_CUSTOMREQUEST => "GET",
   CURLOPT_POSTFIELDS => "{\"page\":".$assets_page."}",
   CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
   CURLOPT_RETURNTRANSFER => true             
 )
);

$result = curl_exec($ch);
curl_close($ch);
$decoderesult = json_decode($result);
print_r($decoderesult);

如果有人知道如何制作,那将是非常熟悉的
提前感谢最好的问候,

s6fujrry

s6fujrry1#

我已经解决了
如果有人感兴趣的话,那就是

  • 删除“曲线邮政字段”
  • 在URL中的**&后面添加参数,并使用=代替:**,如
$assets_page = 1;

$ch = curl_init();
curl_setopt_array($ch, array
(
   CURLOPT_URL => 'https://api.atlassian.com/jsm/assets/workspace/xxxx-xxxx-xxxx-xxxx/v1/aql/objects?qlQuery=objectSchemaId=1%20AND%20objectTypeId=1&page='.strval($assets_page),
   CURLOPT_USERPWD => 'username:token',
   CURLOPT_CUSTOMREQUEST => "GET",
   CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
   CURLOPT_RETURNTRANSFER => true             
 )
);

$result = curl_exec($ch);
curl_close($ch);
$decoderesult = json_decode($result);
print_r($decoderesult);

相关问题