# Příklady implementace

:::info[Rozšířená specifikace]
Jedná se o doplněk k [API Referenci](/api-v1) — ukázky implementace v PHP.
:::

Následující ukázky demonstrují volání API v1 v jazyce PHP pomocí vestavěné knihovny `curl`.
Pro živé vyzkoušení jednotlivých metod (včetně generování ukázek v dalších jazycích) můžete využít
i [Try it panel v API Referenci](/api-v1).

## Získání nabídky přepravy

Pro získání nabídek přepravy odešlete metodou **POST** požadavek na
`https://www.zaslat.cz/api/v1/rates/get` se vstupními daty dle specifikace.

```php
<?php
// Data těla požadavku podle specifikace v dokumentaci.
$data = [
    "from" => [
        "country" => "CZ",
    ],
    "to" => [
        "country" => "SK",
    ],
    "services" => [
        [
            "code" => "COD",
            "data" => [
                "value" => [
                    "value" => 1500,
                    "currency" => "CZK",
                ],
            ],
        ],
    ],
    "packages" => [
        [
            "weight" => 1,
            "width" => 10,
            "height" => 20,
            "length" => 30,
        ],
    ],
];

// Požadavek odešleme knihovnou cURL, která je součástí PHP.
// Místo <VAS-API-KLIC> doplňte váš API klíč.
$ch = curl_init("https://www.zaslat.cz/api/v1/rates/get");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Accept: application/json",
        "Content-Type: application/json",
        "X-Apikey: <VAS-API-KLIC>",
    ],
    // Tělo požadavku se odesílá ve formátu JSON.
    CURLOPT_POSTFIELDS => json_encode($data),
    CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);

// Odpověď serveru (JSON) převedeme na asociativní pole.
$response = json_decode($response, true);
```

## Získání seznamu kontaktů

Pro získání seznamu kontaktů z adresáře odešlete metodou **GET** požadavek na
`https://www.zaslat.cz/api/v1/contacts/list`.

```php
<?php
$ch = curl_init("https://www.zaslat.cz/api/v1/contacts/list");
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => [
        "Accept: application/json",
        "X-Apikey: <VAS-API-KLIC>",
    ],
    CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);

// Odpověď serveru (JSON) převedeme na asociativní pole.
$response = json_decode($response, true);
```

## Ukázky vytvoření objednávky

Ukázka volání `shipments/create` v PHP je součástí stránky
[Objednávka ze svozové adresy](/api/v1/order_from_pickup_address#příklad-implementace-php), kde
navazuje na konkrétní JSON tělo požadavku popsané na dané stránce. Kompletní tvar těla požadavku
pro zásilky s celním řízením najdete na stránce
[Objednávka celní zásilky](/api/v1/customs_shipment_order#příklad-dotazu).
