Грузы и транспорт | Автомаркет | API
Главная  |  Справочник
Новое в API / Справочник API / PHP-коннектор

Введение в API, базовые функции

Библиотека на PHP для работы с api.lardi-trans.com была разработана для облегченного получения информации из нашей базы.
Обмен данными в библиотеке осуществляется POST запросами на адрес http://api.lardi-trans.com/api/.

Функция TEST


Самая базовая функция для проверки работоспособности и доступности сервера API, проверки времени на сервере, текущей версии сервера, тестировании кодировки (например, правильно ли передаются значение русских букв), является функция test:
function test($str)
{
	$data='method=test&test_text='.$str; //формируем строку запроса
	$resp = $this->doRequest($data);  //метод doRequest передает запрос на сервер
	if (strpos($resp, "<testfield>")===false) 
	{
		//если произошла ошибка возвращаем её
		throw new Exception("Test error!<br/>$resp"); 
	}
	else
	{
		$smplXml = new SimpleXmlElement($resp, LIBXML_NOCDATA);
		return $smplXml; //возвращаем ответ в формате SimpleXML
	}       
}
Функция имеет один необязательный параметр $str, этот параметр существует для проверки правильности восприятия русских букв.
После запроса, если не произошло никакой ошибки, ответ сервера будет преобразован в формат SimpleXML и возвращен в ответе функции. Мы выбрали формат SimpleXML, т. к. он предоставляет очень простой в восприятии, интуитивно-понятный доступ к XML-документам, позволяющий совершать разнообразные операции с элементами XML-документа и их атрибутами.

Пример использования функции TEST

  1. <?php
  2. include_once('lardiapi.php'); //подключаем библиотеку
  3.  
  4. try
  5. {
  6. $client = new CLardiAPIClient(); //создаем объект класса CLardiAPIClient
  7. echo "<h3>test</h3>";
  8. $testXML = $client->test("Русский текст для проверки"); //вызываем функцию test
  9. //Выводим результат
  10. echo "<strong>Testfield: </strong>", $testXML->testfield, "<br/>";
  11. echo "<strong>Servername: </strong>", $testXML->servertime, "<br/>";
  12. echo "<strong>Version: </strong>", $testXML->version, "<br/>";
  13. echo "<strong>Test text: </strong>", $testXML->test_text, "<br/>";
  14. }
  15. catch(Exception $e)
  16. {
  17. //если произошла ошибка выводим ее
  18. echo "<font color=\"red\">", $e->getMessage(), "</font>";
  19. }
  20. ?>
Во второй строчке подключается библиотека для работы с API сервером, далее идет блок try/catch (строки 4-19), внутри которого в строке 6 создается объект класса CLardiAPIClient и сохраняется в переменную $client. Потом в строке 7 выводится заголовок и после этого в 8 строке вызывается функция test с параметром "Русский текст для проверки" и результат функции в формате SimpleXML, если не произошло никакой ошибки, сохраняется в переменную $testXML. Далее в сроках 10-13 выводится результат функции. Благодаря использованию формата SimpleXML, доступ в параметрам XML осуществляется очень простым способом, достаточно указать имя параметра, например, в указанном выше примере $testXML->test_text выводит на экран «Русский текст для проверки». Чтобы узнать какие параметры доступны, нужно посмотреть справочник API, находящийся по адресу http://api.lardi-trans.com/reference. Если в результате вызова функции произошла ошибка, то выполнение перейдет в блок catch (строки 15-19), в котором выводится на экран описание ошибки.

В результате на экран будет выведено:

test

Testfield: test value
Servername: 02.06.2010 16:44:19
Version: 0.1.1
Test text: Русский текст для проверки

Функция AUTH


Функция auth существует для авторизации в системе. Если авторизация прошла успешно, возвращаются: SIG - уникальный номер, аналог PHP сессии, UID - основной номер фирмы, is_contact - будет true если Вы зашли от подчиненного контакта, id - номер подчиненного контакта (если is_contact = true).
function auth($login,$passMD5)
{
        $data='method=auth&login='.$login.'&password='.$passMD5;  //формируем строку запроса
        $resp = $this->doRequest($data);  //метод doRequest передает запрос на сервер
        if (strpos($resp, "<sig>")===false) {
                //если произошла ошибка возвращаем её
                throw new Exception("Auth error!<br/>$resp");  
        }
        else
        {       
		//преобразовываем ответ cервера в SimpleXML
                $smplXml = new SimpleXmlElement($resp, LIBXML_NOCDATA);
		$this->sig=$smplXml->sig;  //сохраняем sig и uid во внутренние переменные
                $this->uid=$smplXml->uid;  //доступ к которым возможен с помощью функций getSig и getUid
                return $smplXml;           //возвращаем ответ в формате SimpleXML
        }                       
}
Функция имеет два обязательных параметра:
  • $login - Логин в системе lardi-trans.com
  • $passMD5 - MD5 сумма пароля
После запроса, если не произошло никакой ошибки, ответ сервера будет преобразован в формат SimpleXML и возвращен в ответе функции. Также будут сохранены параметры sig и uid во внутренние переменные класса с соответствующими именами, доступ к которым потом можно получить с помощью функций getSig и getUid. Переменная sig доступна в течении 24 часов.

Пример использования функции AUTH

  1. <?php
  2. include_once('lardiapi.php'); //подключаем библиотеку
  3. $login = "ваш логин"; //логин в системе lardi-trans.com
  4. $pass = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //md5 сумма пароля
  5.  
  6. echo "<style type=\"text/css\">
  7. table, td, th {border: 1px solid black; border-collapse: collapse;}
  8. table th {background-color: gold;}</style>";
  9.  
  10. try
  11. {
  12. $client = new CLardiAPIClient(); //создаем объект класса CLardiAPIClient
  13.  
  14. echo "<h1>auth</h1>";
  15. $authXML = $client->auth($login, $pass); //вызываем функцию auth
  16. //выводим результат в таблице
  17. echo "<table><tr ><th>Sig</th><th>Uid</th><th>Is_contract</th><th>Id</th></tr><tr>";
  18. echo "<td>", $authXML->sig, "</td>";
  19. echo "<td>", $authXML->uid, "</td>";
  20. echo "<td>", ($authXML->is_contract ? "true": "false"), "</td>";
  21. echo "<td>", $authXML->id, "</td>";
  22. echo "</tr></table>";
  23. }
  24. catch(Exception $e)
  25. {
  26. //если произошла ошибка выводим ее
  27. echo "<font color=\"red\">", $e->getMessage(), "</font>";
  28. }
  29. ?>
Во второй строчке подключается библиотека для работы с API сервером, в строках 3-4 задаются переменные $login и $pass, далее идет блок try/catch (строки 10-28), внутри которого в строке 12 создается объект класса CLardiAPIClient и сохраняется в переменную $client. Потом в строке 14 выводится заголовок и после этого в 15 строке вызывается функция auth с параметрами $login и $pass, и результат функции в формате SimpleXML, если не произошло никакой ошибки, сохраняется в переменную $authXML.
Далее в сроках 17-22 выводится результат функции. Чтобы узнать какие параметры доступны, нужно посмотреть справочник API, находящийся по адресу http://api.lardi-trans.com/reference/. Если в результате вызова функции произошла ошибка, то выполнение перейдет в блок catch (строки 24-28), в котором выводится на экран описание ошибки.

В результате на экран будет выведено:

auth

SigUidIs_contractId
874asd685asg79asg7365 45676 true 56565
© Lardi LTD, 1996-2020 API support