Получение идентификатора из запроса REST GET с Oracle прямо сейчас

Я новичок в REST и пытаюсь получить только идентификатор из запроса SELECT ID from CO.A_Country where Name="xxx"; используя ROQL. Я использую REST с PHP:

<?php
/**
*  Example API call
*  GET profile information
*/

// the ID of the profile

$profileID = 2;

// the token

$token = 'your token here';

// set up the curl resource

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://User:[email protected]/services/rest/connect/v1.3/queryResults
/?query=select%20ID%20from%20CO.A_Country%20where%20CO.A_Country.A_Country=%27xxx%27");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$output = curl_exec($ch);

echo($output). PHP_EOL;

curl_close($ch);

?>

Я получаю следующий результат:

HTTP/1.1 200 OK Date: Thu, 04 Aug 2016 14:58:02 GMT Server: Apache Content-Language: en-US RNT-Time: D=58455 t=1470322682582920 RNT-Machine: 128.64 Transfer-Encoding: chunked Content-Type: application/json { "items": [ { "tableName": "CO.Affected_Country", "count": 1, "columnNames": [ "id" ], "rows": [ [ "12" ] ] } ], "links": [ { "rel": "self", "href": "https://test.help.com/services/rest/connect/v1.3/queryResults?query=select%20ID%20from%20CO.A_Country%20where%20CO.A_Country.Affected_Country=%27USA%27" }, { "rel": "canonical", "href": "https://test.help.com/services/rest/connect/v1.3/queryResults" }, { "rel": "describedby", "href": "https://test.help.com/services/rest/connect/v1.3/metadata-catalog/queryResults", "mediaType": "application/schema+json" } ] }

Как получить только желаемый идентификатор для вывода в $?

2

Решение

Ты не можешь просто получить идентификатор из запроса ROQL из API-интерфейса REST OSvC; тем более что ваш запрос может вернуть несколько результатов. Эти другие данные всегда будут возвращаться как часть ваших результатов (и других соответствующих данных в зависимости от конечной точки, которую вы используете). Вам нужно проанализировать эти результаты, чтобы получить идентификатор из вашего запроса.

Не возвращайте заголовок как часть тела ответа:

curl_setopt($ch, CURLOPT_HEADER, 0);

Затем используйте json_decode для преобразования результатов ROQL в объект PHP, как предлагает @Manish Shukla.

$results = json_decode($output);

Тогда ваши результаты ROQL будут доступны для анализа. Строки возвращаются в виде массива, который вы можете перебрать. Поскольку в вашем запросе нет оператора ограничения, вы должны либо добавить его, либо учесть несколько возвращаемых значений.


if(!is_null($results['items'][0]['rows'])){
foreach($results['items'][0]['rows'] as $row){
echo $row; //Will output the ID from your select statement. Change this to do something with the ID as needed.
}
}

1

Другие решения

в основном curl возвращает вам полные данные как json. Прежде всего преобразуйте эти данные в php, а затем вы можете просмотреть этот массив, чтобы найти точное значение.
Вы можете использовать функцию json_decode. Для получения более подробной информации о функции, пожалуйста, обратитесь к этому.
http://php.net/manual/en/function.json-decode.php

0

По вопросам рекламы [email protected]