API
System Ready_™ udostępnia API (Application Programming Interface) w standardzie REST, dzięki któremu jesteśmy w stanie przeprowadzać podstawowe czynności. Usługa jest zabezpieczona tokenem autoryzującym (Bearer Token), który uzyskujemy przy logowaniu za pomocą nazwy użytkownika i hasła, a następnie dodajemy nagłówek wg dokumentacji, gdzie zamieniamy na token otrzymany po zalogowaniu.
Komunikacja
W poniższej dokumentacji oraz w OpenApi nasze endpointy zaczynają się od frazy /v1
lub /custom
, przed którą należy dokleić do adres domeny na której znajduje się platforma Ready_ oraz /api.php/REST
.
Przykład: Adres serwera: https://my-cloud.cloud.ready-os.com
Endpoint: /v1/login
Pełny adres endpointu: https://my-cloud.cloud.ready-os.com/api.php/REST/v1/login
Przykład komunikacji
Logowanie
Logujemy się do api aby pobrać token uwierzytelnienia tzw. "Bearer token". Ważne jest aby w request'cie umieścić login $username
, hasło $password
i stałą cześć URL $baseURL
, która składa się z nazwy domeny i części stałej "/api.php/REST".
<?php
$curl = curl_init();
$myReadyDomain = 'twoja/domena/do/ready';
$baseUrl = 'https://'. $myReadyDomain .'/api.php/REST';
$bearerToken = 'wklej tu token z odpowiedzi pierwszego requesta. Sekcja Logowanie';
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl.'/v1/login',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"username": '.$username.',
"password": '.$password.'
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
POST /api.php/REST/v1/login HTTP/1.1
Host: my.ready.domain
Content-Type: application/json
Accept: application/json
Content-Length: 62
{
"username": "username",
"password": "password"
}
Po wysłaniu request'a otrzymamy $bearerToken
, który następnie dołączamy do każdego następnego zapytania.
Listowanie dostępnych dokumentów
<?php
$myReadyDomain = 'twoja/domena/do/ready';
$baseUrl = 'https://'. $myReadyDomain .'/api.php/REST';
$bearerToken = 'wklej tu token z odpowiedzi pierwszego requesta. Sekcja Logowanie';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl.'/v1/documents',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Authorization: Bearer '.$bearerToken,
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
GET /api.php/REST/v1/documents HTTP/1.1
Host: my.ready.domain
Accept: application/json
Authorization: Bearer "Bearer Token"
Cookie: READYSESSID={SSID}
Pobieranie Listy załącznika konkretnego dokumentu.
wypełniamy parametr $doc_id
identyfikatorem (integer) dokumentu z którego chcemy pobrać załączniki.
<?php
$myReadyDomain = 'twoja/domena/do/ready';
$baseUrl = 'https://'. $myReadyDomain .'/api.php/REST';
$doc_id = 1 // identyfikator dokumentu
$bearerToken = 'wklej tu token z odpowiedzi pierwszego requesta. Sekcja Logowanie';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl.'/v1/documents/'.$doc_id.'/attachments',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Authorization: Bearer '.$bearerToken,
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
GET /api.php/REST/v1/documents/"doc_id"/attachments HTTP/1.1
Host: my.ready.domain
Accept: application/json
Authorization: Bearer "Bearer Token"
Cookie: READYSESSID={SSID}
Szukanie klienta o podanej nazwie
<?php
$myReadyDomain = 'twoja/domena/do/ready';
$baseUrl = 'https://'. $myReadyDomain .'/api.php/REST';
$nazwaKlienta = "Symfonia"
$bearerToken = 'wklej tu token z odpowiedzi pierwszego requesta. Sekcja Logowanie';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl.'/v1/contacts?_search='.$nazwaKlienta,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Authorization: Bearer '.$bearerToken,
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
GET /api.php/REST/v1/contacts?_search=Nazwa Klienta HTTP/1.1
Host: my.ready.domain
Accept: application/json
Authorization: Bearer "Bearer Token"
Cookie: READYSESSID={SSID}
Tworzenie dokumentu wraz z dodaniem załącznika.
Tworzymy dokument typu notatka.
<?php
$myReadyDomain = 'twoja/domena/do/ready';
$baseUrl = 'https://'. $myReadyDomain .'/api.php/REST';
$bearerToken = 'wklej tu token z odpowiedzi pierwszego requesta. Sekcja Logowanie';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl.'/v1/documents',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"dctpid": 4,
"dscrpt": "Temat notatki"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer '.$bearerToken,
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
POST /api.php/REST/v1/documents HTTP/1.1
Host: my.ready.domain
Content-Type: application/json
Accept: application/json
Authorization: Bearer "Bearer Token"
Cookie: READYSESSID=SSID
Content-Length: 50
{
"dctpid": 4,
"dscrpt": "Temat notatki"
}
W response body dostaniemy parametr $doc_id
. Użyjemy go w następnym request'cie do dodania załącznika do dokumentu typu notatka.
<?php
$myReadyDomain = 'twoja/domena/do/ready';
$baseUrl = 'https://'. $myReadyDomain .'/api.php/REST';
$doc_id = 1 // identyfikator dokumentu
$bearerToken = 'wklej tu token z odpowiedzi pierwszego requesta. Sekcja Logowanie';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl.'/v1/documents/'.$doc_id.'/attachments',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file_1'=> new CURLFILE('/path/to/my/attachment')),
CURLOPT_HTTPHEADER => array(
'Content-Type: multipart/form-data',
'Accept: application/json',
'Authorization: Bearer '.$bearerToken,
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
POST /api.php/REST/v1/documents/"doc_id"/attachments HTTP/1.1
Host: my.ready.domain
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept: application/json
Authorization: Bearer "Bearer Token"
Cookie: READYSESSID="SSID"
Content-Length: 199
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file_1"; filename="załącznik"
Content-Type: <Content-Type header here>
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Wylogowanie się
<?php
$myReadyDomain = 'twoja/domena/do/ready';
$baseUrl = 'https://'. $myReadyDomain .'/api.php/REST';
$bearerToken = 'wklej tu token z odpowiedzi pierwszego requesta. Sekcja Logowanie';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl.'/v1/logout',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Authorization: Bearer '.$bearerToken,
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
GET /api.php/REST/v1/logout HTTP/1.1
Host: my.ready.domain
Accept: application/json
Authorization: Bearer "Bearer Token"
Cookie: READYSESSID="SSID"