API - Informacje podstawowe
Komunikacja z serwisem porzez API polega na wysłaniu odpowiednich parametrów metodą POST w formacie JSON.
Adresy metod są dostępne pod adresami URL, wg. poniższej struktury:
https://flypak.pl/api/{metoda}.json
Do przygotowania parametrów do wysyłki w PHP można posłużyć się funkcją
json_encode. Szczegółowe informacje dotyczące parametrów opisane są w dokumentacji przy każdej metodzie.
Request - autoryzacja
Każda metoda wymaga autoryzacji. Przy każdym request należy dołączyć pola [auth][login] oraz [auth][api_key]. Klucz autoryzacji API (api_key) można zdefiniować w formularzu edycji profilu."
auth | Array | Dane autoryzacyjne |
|
login | String | Login (e-mail) | api_key | String | Klucz autoryzacji do API (api_key) |
|
Response - sukces
success | Boolean | Określa czy metoda wykonała się poprawnie czy z błędami |
data | Array | Szczegółowe parametry odpowiedzi serwera |
Przykład:
{
"success":true,
"data":{
"bank_saldo":150.26
}
}
Response - błąd
success | Boolean | Określa czy metoda wykonała się poprawnie czy z błędami |
message | String | Komunikat błędu |
data | Array | Szczegółowe parametry odpowiedzi serwera |
|
validationErrors | Array | Komunikaty błędów parametrów | |
weight | Array | Komunikaty błędów pola | |
|
|
|
Przykład:
{
"success":false,
"data":{
"validationErrors":{
"weight":["Wprowadź wagę przesyłki"]
}
}
}
Przykładowy kod PHP
<?php
$method = 'getBankSaldo';
$data['auth'] = array(
'login' => '[email protected]',
'api_key' => '********',
);
$data_string = json_encode($data);
$ch = curl_init('https://flypak.pl/api/'.$method.'.json');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($data_string),
));
$response = curl_exec($ch);
$jsonData = json_decode(trim($response), true);
echo '<h3>RESPONSE</h3>';
if ($jsonData && json_last_error() == JSON_ERROR_NONE) {
print_r($jsonData);
}else{
echo $response;
}
?>