Вызов методов АПИ » История » Версия 4
Артем, 24.11.2017 15:41
| 1 | 1 | Артем | h1. Вызов методов АПИ |
|---|---|---|---|
| 2 | |||
| 3 | h2. С использованием функции file_get_contents |
||
| 4 | |||
| 5 | <pre><code class="php"> |
||
| 6 | <?php |
||
| 7 | 4 | Артем | define ("apiKey","АПИ_КЛЮЧ"); |
| 8 | 1 | Артем | define ("apiClientId","ВАШ_ID_КЛИЕНТА"); |
| 9 | define ("apiDomainName","ИМЯ_ДОМЕНА"); |
||
| 10 | define ("apiRequestUrl","https://api.ilcats.ru/"); |
||
| 11 | define ("apiExamlpeBrandName","audi"); |
||
| 12 | define ("apiCurrentVersion","2.0"); |
||
| 13 | |||
| 14 | function generateRequestURI ($uriParameters) { |
||
| 15 | $paramsArray = array(); |
||
| 16 | foreach ($uriParameters as $key => $val) |
||
| 17 | $paramsArray[] = $key . "=" . $val; |
||
| 18 | $requestString = implode("&",$paramsArray); |
||
| 19 | return $requestString; |
||
| 20 | }; |
||
| 21 | |||
| 22 | 3 | Артем | function getApiData ($apiRequestUrl, $functionParameters, $clientParameters){ |
| 23 | 1 | Артем | // Запрос данных с помощю функции file_get_contens(); |
| 24 | |||
| 25 | $requestParameters = array_merge($functionParameters, $clientParameters); // объединяем массивы параметров вызова и параметров клиента API |
||
| 26 | $requestString = generateRequestURI($requestParameters); //генерируем строку вызова |
||
| 27 | $dataString = file_get_contents($apiRequestUrl . "?" . $requestString); |
||
| 28 | return ($dataString); |
||
| 29 | |||
| 30 | }; |
||
| 31 | |||
| 32 | $functionParameters= array( // Список параметров вызова |
||
| 33 | "function" => "defaultFunction", // Запрос функции по умолчанию |
||
| 34 | "brand" => apiExamlpeBrandName // название бренда |
||
| 35 | ); |
||
| 36 | |||
| 37 | $clientParameters = array( |
||
| 38 | "apiKey" => apiKey, |
||
| 39 | "clientId" => apiClientId, |
||
| 40 | "domain" => apiDomainName, |
||
| 41 | "apiVersion" => apiCurrentVersion |
||
| 42 | ); |
||
| 43 | |||
| 44 | $apiRequestUrl = apiRequestUrl; |
||
| 45 | |||
| 46 | 3 | Артем | $st = getApiData($apiRequestUrl, $functionParameters, $clientParameters); |
| 47 | 1 | Артем | |
| 48 | header('Content-Type: application/json'); |
||
| 49 | header('Access-Control-Allow-Origin: *'); |
||
| 50 | echo $st; |
||
| 51 | |||
| 52 | ?> |
||
| 53 | </code></pre> |
||
| 54 | 2 | Артем | |
| 55 | 1 | Артем | h2. С использованием функции cURL |
| 56 | |||
| 57 | <pre><code class="php"> |
||
| 58 | 4 | Артем | define ("apiKey","АПИ_КЛЮЧ"); |
| 59 | 1 | Артем | define ("apiClientId","ВАШ_ID_КЛИЕНТА"); |
| 60 | define ("apiDomainName","ИМЯ_ДОМЕНА"); |
||
| 61 | define ("apiRequestUrl","https://api.ilcats.ru/"); |
||
| 62 | define ("apiExamlpeBrandName","audi"); |
||
| 63 | define ("apiCurrentVersion","2.0"); |
||
| 64 | |||
| 65 | function generateRequestURI ($uriParameters) { |
||
| 66 | $paramsArray = array(); |
||
| 67 | foreach ($uriParameters as $key => $val) |
||
| 68 | $paramsArray[] = $key . "=" . $val; |
||
| 69 | $requestString = implode("&",$paramsArray); |
||
| 70 | return $requestString; |
||
| 71 | }; |
||
| 72 | |||
| 73 | 3 | Артем | function getApiData ($apiRequestUrl, $functionParameters, $clientParameters){ |
| 74 | 1 | Артем | // Запрос данных с помощю функции cURL; |
| 75 | |||
| 76 | $requestParameters = array_merge($functionParameters, $clientParameters); // объединяем массивы параметров вызова и параметров клиента API |
||
| 77 | $requestString = generateRequestURI($requestParameters); //генерируем строку вызова |
||
| 78 | |||
| 79 | |||
| 80 | $ch = curl_init(); |
||
| 81 | curl_setopt($ch, CURLOPT_URL, $apiRequestUrl . "?" . $requestString); |
||
| 82 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
||
| 83 | $output = curl_exec($ch); |
||
| 84 | curl_close($ch); |
||
| 85 | |||
| 86 | |||
| 87 | return ($output); |
||
| 88 | |||
| 89 | }; |
||
| 90 | |||
| 91 | $functionParameters= array( // Список параметров вызова |
||
| 92 | "function" => "defaultFunction", // Запрос функции по умолчанию |
||
| 93 | "brand" => apiExamlpeBrandName // название бренда |
||
| 94 | ); |
||
| 95 | |||
| 96 | $clientParameters = array( |
||
| 97 | "apiKey" => apiKey, |
||
| 98 | "clientId" => apiClientId, |
||
| 99 | "domain" => apiDomainName, |
||
| 100 | "apiVersion" => apiCurrentVersion |
||
| 101 | ); |
||
| 102 | |||
| 103 | $apiRequestUrl = apiRequestUrl; |
||
| 104 | |||
| 105 | 3 | Артем | $st = getApiData($apiRequestUrl, $functionParameters, $clientParameters); |
| 106 | 1 | Артем | |
| 107 | header('Content-Type: application/json'); |
||
| 108 | header('Access-Control-Allow-Origin: *'); |
||
| 109 | echo $st; |
||
| 110 | </code></pre> |