مَخلص همراه با افزار شما است
وب سرویس (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 استفاده می کنیم.
برای کوتاه کردن یک لینک بلند (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 $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 }
برای خواندن و یا گرفتن اطلاعات یک لینک کوتاه کافی است آدرس کامل لینک کوتاه را همراه با درخواست ارسال کنیم.
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 $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
برای خواندن و یا گرفتن اطلاعات همه لینک های کوتاه درخواست را به صورت زیر ارسال میکنیم.
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 $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 در هر یک از درخواست ها برگردانده می شود.