وب سرویس (Api) مَخلص به صورت REST طراحی شده است و تمام درخواست ها و پاسخ ها به صورت JSON ردوبدل می شود.

برای استفاده از آن فقط نیاز به یک کلید اعتبار سنجی (Authorization) دارید که پس از ثبت نام در پنل کاربری در دسترس شما است.

کلید اعتبار سنجی (Authorization) را پس از عبارت Bearer و یک فاصله در Header تمام درخواست های وبسرویس قرار دهید و مطمئن شوید که دو مقدار Content-Type و Accept نیز در هدر (Header) برابر با application/json باشد.

'accept: application/json'
'content-type: application/json'
'authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

دسترسی به نسخه ۱ وبسرویس از آدرس زیر امکان پذیر است :

http://api.makhlas.com/v1/

همیشه برای گرفتن اطلاعات ذخیره شده از درخواست نوع GET و برای ایجاد یک داده جدید از POST استفاده می کنیم.



کوتاه کردن لینک

POST http://api.makhlas.com/v1/url

برای کوتاه کردن یک لینک بلند (long_url) تنها به همین مقدار نیاز داریم اما شما می توانید مقدار domain را هم مشخص کنید:

curl -X POST http://api.makhlas.com/v1/url -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -d '{ "long_url":"https://www.google.com/webhp", "domain":"urly.ir" }'

  • نمونه درخواست (php)
    <?php
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "http://api.makhlas.com/v1/url",
      CURLOPT_TIMEOUT => 30,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => '{"long_url":"https://www.google.com/webhp"}',
      CURLOPT_HTTPHEADER => array(
        "accept: application/json",
        "authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "cache-control: no-cache",
        "content-type: application/json"
      ),
    ));
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    curl_close($curl);
    
    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo json_decode($response, true);
    }
    
  • نمونه پاسخ
    {
        "data": [
            {
                "hash": "xx",
                "title": "",
                "long_url": "https://www.google.com/webhp",
                "clicks": 0,
                "created_at": "2017-08-01 09:07:57",
                "short_url": "http://urly.ir/xx",
                "key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "public_stats": "http://makhlas.com/stats/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            }
        ],
        "code": 201,
        "success": true,
        "next_page_url": null
    }
    



گرفتن اطلاعات لینک کوتاه شده

GET http://api.makhlas.com/v1/url/show/?short_url=http://xx

برای خواندن و یا گرفتن اطلاعات یک لینک کوتاه کافی است آدرس کامل لینک کوتاه را همراه با درخواست ارسال کنیم.

curl -X GET 'http://api.makhlas.com/v1/url/show/?short_url=http://urly.ir/app' -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

  • نمونه درخواست (php)
    <?php
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "http://api.makhlas.com/v1/url/show?short_url=http://urly.ir/app",
      CURLOPT_TIMEOUT => 30,
      CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "accept: application/json",
        "authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "cache-control: no-cache",
        "content-type: application/json"
      ),
    ));
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    curl_close($curl);
    
    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo json_decode($response, true);
    }
    
  • نمونه پاسخ
    {
    "data": [
        {
            "hash": "app",
            "title": "لینک تست",
            "long_url": "https://www.google.com/webhp",
            "clicks": 253,
            "created_at": "2017-08-01 09:07:11",
            "short_url": "http://urly.ir/app",
            "key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "public_stats": "http://makhlas.com/stats/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ],
    "code": 200,
    "success": true,
    "next_page_url": null
    }
    

همچنین این امکان وجود دارد که با ارسال مقدار لینک بلند، تمام لینک های کوتاه شده آن را دریافت کنید :

http://api.makhlas.com/v1/url/show?long_url=https://www.google.com/webhp



گرفتن اطلاعات تمام لینک های کوتاه شده

GET http://api.makhlas.com/v1/url

برای خواندن و یا گرفتن اطلاعات همه لینک های کوتاه درخواست را به صورت زیر ارسال میکنیم.

curl -X GET 'http://api.makhlas.com/v1/url' -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

  • نمونه درخواست (php)
    <?php
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "http://api.makhlas.com/v1/url",
      CURLOPT_TIMEOUT => 30,
      CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "accept: application/json",
        "authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "cache-control: no-cache",
        "content-type: application/json"
      ),
    ));
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    curl_close($curl);
    
    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo json_decode($response, true);
    }
    
  • نمونه پاسخ
    {
        "data": [
            {
                "hash": "app",
                "title": "تست وبسرویس",
                "long_url": "https://www.google.com/webhp",
                "clicks": 250,
                "created_at": "2017-08-01 11:07:57",
                "short_url": "http://urly.ir/app",
                "key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "public_stats": "http://makhlas.com/stats/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            },
            {
                "hash": "xx",
                "title": null,
                "long_url": "http://makhlas.com/about",
                "clicks": 0,
                "created_at": "2017-08-01 09:30:59",
                "short_url": "http://urly.ir/xx",
                "key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "public_stats": "http://makhlas.com/stats/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            }
        ],
        "code": 200,
        "success": true,
        "next_page_url": "http://api.makhlas.com/v1/url?page=2"
    }
    

پاسخ به صورت صفحه بندی (Paginated) بازگردانده می شود و در صورتی که صفحه بعد دارای اطلاعات باشد مقدار next_page_url در هر یک از درخواست ها برگردانده می شود.