Я пытаюсь протестировать API REST SugarCRM, работающий с последней версией CE (6.0.1). Кажется, что когда я делаю запрос, API возвращает «ноль», ничего больше. Если я опущу параметры, то API возвращает описание API (что в документации сказано, что должно).
Я пытаюсь выполнить вход в систему, передав в качестве параметра метод (login), input_type и response_type (json) и rest_data (параметры в кодировке JSON). Следующий код выполняет запрос:
$api_target = "http://example.com/sugarcrm/service/v2/rest.php";
$parameters = json_encode(array(
"user_auth" => array(
"user_name" => "admin",
"password" => md5("adminpassword"),
),
"application_name" => "Test",
"name_value_list" => array(),
));
$postData = http_build_query(array(
"method" => "login",
"input_type" => "json",
"response_type" => "json",
"rest_data" => $parameters
));
echo $parameters . "\n";
echo $postData . "\n";
echo file_get_contents($api_target, false,
stream_context_create(array(
"http" => array(
"method" => "POST",
"header" => "Content-Type: application/x-www-form-urlencoded\r\n",
"content" => $postData
)
))) . "\n";
Я пробовал разные варианты параметров и использовал имя пользователя вместо user_name, и все они дают один и тот же результат, просто ответ "null" и все.