API مخفف واژگان Application Programming Interface به معنی «رابط های برنامه نویسی اپلیکیشن» می باشد. به طور خلاصه، ای پی آی به راحتی این امکان را در اختیار یک برنامه نویس می‌دهد تا به‌ برخی یا تمامی قابلیت‌ های یک نرم‌افزار دیگر دسترسی پیدا کند.
به طور مثال، فرض کنیم نرم‌افزاری تحت عنوان الف وجود دارد که شرکت توسعه‌دهنده اش، این امکان را برای سایر توسعه دهندگان فراهم آورده تا از API آن استفاده کنند. نرم افزاری را هم که توسعه می‌دهیم نرم‌افزار ب نام دارد. حال نرم‌افزار الف در چارچوب خاصی به نرم‌افزار ب اجازه می‌دهد تا از اطلاعات آن استفاده کند.
در استفاده از API می بایست موارد زیر را حتماً مد نظر قرار داد:
- API ها ارائه دهنده ی داده‌ها ساختار یافته هستند. به عبارت دیگر، درخواست از طرف نرم‌افزار ب به نرم‌افزار الف در چارچوب یک فرمت استاندارد صورت می گیرد.
- APIها قابل پیش‌بینی هستند. به عبارت دیگر، درخواست هایی که به نرم‌افزار الف ارسال می‌شوند از پیش تعیین شده بوده لذا پاسخ به چنین درخواست هایی همواره مشخص و قابل پیش‌بینی خواهند بود.
- API ها مستند هستند. با توجه به این که API ها توسط شرکت های بزرگ برای سرویس های جهانی ایجاد می شوند، این APIها می بایست صد در صد مستند بوده تا توسعه دهندگانی که قصد استفاده از آن‌ها را دارند، در استفاده از آن‌ها دچار حداقل سردرگمی شوند و به راحتی از جزئیات API سر در بیاروند.
- API ها دارای یک API Key هستند. برای آن که به راحتی مشخص شود که Request یا «درخواست» از طرف چه سایت یا نرم افزاری است، ای پی آی ها یک API Key یا «شناسه ی ای پی آی» در اختیار توسعه دهندگان قرار می‌دهند که در هر درخواست، این شناسه هم برای شرکت الف ارسال می‌شود که از آن طریق، ماهیت اپلیکیشن شما برای آن سیستم مشخص شده و بر اساس توافقاتی که برای استفاده از ای پی آی صورت گرفته، خدمات را در اختیار شما قرار می دهد. علاوه بر این، شناسه ای که در اختیار شما -به عنوان یک توسعه‌دهنده- قرار می گیرد، مشخص می‌کند که شما هر چند وقت یک بار خواهید توانست برای نرم‌افزار الف درخواست ارسال کنید. به طور مثال، این API ممکن است که صرفاً در بازه های زمانی نیم ساعته به درخواست ها پاسخ گوید و در صورتی که اپلیکیشنی هر ده دقیقه یک بار، یک درخواست ارسال کند، API Key مشخص کننده ارسال کننده ی درخواست بوده و درخواست شما اصطلاحاً Ignore شده یا «نادیده» گرفته می شود.
این نکته را همواره می بایست مد نظر قرار داد که طراحی API از پایه کار نسبتا دشواری است که مراحلی پیچیده و بسیار تخصصی دارا است. برای آن که یک تصویر کلی از API داشته باشیم، می توان API را این گونه توصیف نمود که API مجموعه ای از دستورات و توابع است که به دیگر نرم افزارها امکان دسترسی به سرویس ها یا اطلاعات عرضه شده توسط شما را می دهد. به زبان ساده تر، برای آن که یک نرم افزار بتواند به اطلاعات شما دسترسی داشته باشد، آن ها را تغییر دهد و غیره، به یک واسطه به نام API نیاز دارد.
عموماً APIها با توجه به برخی الگوها و استانداردها ساخته می شوند تا تمامی توسعه دهندگان از سراسر دنیا بتوانند از آن ها استفاده کنند -و با توجه به تشخیص سازنده- می توانند رایگان و یا پولی باشند.

استفاده از سرویس های دوصفر در خارج از سرورهای سایت مستلزم استفاده از API می باشد که در بخش "آموزش ها" می توانید طریقه اتصال را مطالعه کنید...

API دوصفر بروزرسانی شد

API دوصفر به نسخه 2.5.2 بروزرسانی شد...
تغییرات این نسخه :
تغییر مقدار خطا از (n و y) به (false و true)
پروتکل امنیتی SSL اضافه شد... (استفاده از https اجباری است!)
سوالات خود را درباره API مطرح کنید...

ارسال درخواست

ارسال درخواست به سرور با دو متد GET و POST امکانپذیر است!

متد POST

آدرس درگاه (جدید)https://do0.ir/post/[key]/[ver]/[errorType] (Optional) آدرس نمونهhttps://do0.ir/post/test1324/2.5 آخرین ویرایش آدرس: 20 خرداد 1395
نکته: ارسال درخواست به صورت آجاکس بین سرور (Cross Server Ajax) میسر است.
اتصال ایمن برای ارسال درخواست به سرور دوصفر می بایست آدرس API با پروتکل https وارد شود!

پارامتر ها (ورودی)

پارامتر key مقدار این پارامتر "کلید توسعه دهنده (API KEY)" است.
برای دریافت کلید توسعه دهنده پس از ثبت نام در سایت، وارد بخش API شوید و با استفاده از فرم موجود یک API جدید ایجاد کنید و کد خود را به جای api_key قرار دهید.
پارامتر verمقدار این پارامتر شماره نسخه فعلی API است.
این شماره از طرف تیم توسعه سایت تعیین می شود و پس از هر بروزرسانی این عدد تغییر می کند.
شماره نسخه فعلی API: 2.5
پارامتر errorType (دلخواه) این پارامتر نوع پیام خطا را تعیین می کند.
مقادیر قابل قبول:
simple : پیام خطا به صورت ساده و بدون تگ های HTML
code : پیام خطا به صورت کد خطایابی
html : پیام خطا به صورت کد HTML به همراه توضیحات
مقدار این پارامتر به صورت پیشفرض برابر با html خواهد بود. مقدار این پارامتر به حروف کوچک و بزرگ حساس نیست.
پارامتر link (POST) ورودی/مقدار این پارامتر آدرسی است که می خواهید کوتاه شود.

نکته مهم (رمزگذاری)

قبل از ارسال درخواست توسط متد های گفته شده؛ آدرس ارسالی را رمزگذاری کنید.
رمزگذاری آدرس ها بر اساس زبان برنامه نویسی شما متفاوت است! همچنین مثال هایی از رمزگذاری آدرس ها را می توانید در بخش Samples/Lab مشاهده کنید.

پارامتر ها (خروجی)

idشناسه لینک
shortلینک کوتاه شده
address(فشرده) آدرس اولیه لینک
publicوضعیت نمایش (عمومی یا خصوصی بودن)
successوضعیت عملیات (دو مقدار false و true)
errorخطا (در صورت وجود)
خروجی کلی (صحیح)
{"success": true,"error": "","id": ...,"address": ...,"short": ...,"public": ...}
خروجی کلی (وجود خطا) ?
{"success": false,"error": ...}

متد GET (پیشنهاد نمی شود)

آدرس درگاه https://do0.ir/send.php?rel=api&key=[key]&ver=2.5&type=get&L=[URL] &errorType=[errorType]

API آمارگیر دوصفر

این API در حال حاضر به صورت BETA (آزمایشی) کار می کند و به زودی امکانات گسترده تری به آن اضافه خواهد شد!
همچنین نمونه ای از استفاده این API در بخش Samples موجود است!
آدرس درگاه (کوتاه) https://do0.ir/stat_api/{LINK_NAME}
آدرس درگاه (بلند) https://do0.ir/json.php?i={LINK_NAME}&type=stat
پارامتر i مقدار این پارامتر نام لینکی است که میخواهید اطلاعات آماری آن را دریافت کنید...

MINI API (کوتاه کننده کوچک)

یکی از آخرین امکانات دوصفر می باشد که می توانید برای هر API Key یک نسخه کوچک ایجاد کنید!
برای دیدن نمونه ای از یک Mini API اینجا کلیک کنید...
با استفاده از این امکان برای سایت/وبلاگ خود یک کوتاه کننده اختصاصی و 100% رایگان بسازید! آن هم در سرور های ایران...!!!
آدرس اصلی https://do0.ir/m/{"MINI_KEY"}/2.5.1
نسخه فعلی (پایدار) 2.5.1
شیوه ساخت 1. ابتدا طبق روش گفته شده در ابتدا همین صفحه برای خودتان یک API Key ایجاد کنید...
2. پس از ایجاد کد افزونه خودتان به بخش API در پنل کاربریتان مراجعه فرمائید.
3. سپس برای دریافت کد مخصوص mini api مانند تصویر زیر روی "دریافت کد mini" کلیک کنید.
MINI_KEY1
4. پس از کلیک روی دریافت کد مشاهده می کنید که به جای کلمه "دریافت کد" یک کلمه تصادفی به شما نمایش داده می شود که آن، درواقع همان مینی کد شماست!
MINI_KEY2
5. در نهایت مینی کد خود را در آدرس بالا جایگذاری کنید و صاحب کوتاه کننده اختصاصی خود شوید!

مشکل یا ابهامی مشاهده کردید؟

لطفا در صورتی که مشکل یا ابهامی در سرویس API دوصفر مشاهده کردید؛ آن را با تیم پشتیبانی ما در میان بگذارید... شما می توانید با رفتن به صفحه تماس با ما مشکل را به راحتی گزارش کنید! :)

ارسال درخواست در JAVASCRIPT

شیوه ارسال اطلاعات به صورت AJAX به API ارسال می شود و خروجی به صورت JSON دریافت می شود.
کتابخانه jQuery از کتابخانه jQuery استفاده می کنید؟
Ajax in jQuery را مطالعه کنید...
// api version 2.5 - stable function request() { var xhttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP'); console.log("STATUS: Sending Request..."); xhttp.onreadystatechange=function() { if(xhttp.readyState==4 && xhttp.status==200) { var data=JSON.parse(xhttp.responseText); if(data.success==false) console.log("ERROR: "+data.error); else console.log("SUCCESS: https://do0.ir/"+data.short); } } xhttp.open('POST','https://do0.ir/post/{APP_KEY}/2.5',true); // SSL REQUIRED!! xhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); xhttp.send("link="+encodeURIComponent(url)); // URL ENCRYPTION REQUIRED!! } // API Requests should meet our API Services rules! // Take a look at Terms of Services in: http://do0.ir/pages/terms#api

ارسال درخواست در PHP

شیوه ارسال اطلاعات به صورت GET به API ارسال می شود و خروجی به صورت JSON دریافت می شود.
$url="{URL}";

function enc($url) {
  return urlencode($url);
}

$url=enc($url);
if(empty($url) || is_null($url)) die("Error[1]");
else {
    $file=file_get_contents('https://do0.ir/send.php?key=<-yourKey->&ver=2.5&type=get&L='.$url);
      $get=json_decode($file);
      $short=$get->short;
      $success=$get->success;
      $error=$get->error;
      ($success==false)?die($error):die('https://do0.ir/'.$short);
}

ارسال درخواست در ANDROID/JAVA

شیوه ارسال ارسال درخواست http به وسیله کتابخانه Volley اندروید و دریافت خروجی JSON
به زودی سورس کامل به همراه کتابخانه قرار داده می شود...
JsonObject js = new JsonObject(res);
String short = js.getString("short");
Toast.makeText(getApplicationContext(), short, Toast.LENGTH_SHORT).show();

تابع jsonify برای استفاده در JSP

ارسال درخواست در Go language

شیوه ارسال درخواست http به api ارسال می شود و پاسخ دریافت می شود.
import "net/http"
	// ...
resp, err := http.PostForm("https://do0.ir/post/{APP_KEY}/2.5",
url.Values{"link": {"LINK_VALUE"}, "name": {"LINK_NAME"}})
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
// ...

مستندات داخلی GO

نمونه کد API آمارگیر (JAVASCRIPT)


	var xhttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP');
	console.log("STATUS: Sending Request...");
	xhttp.onreadystatechange=function(){
		if(xhttp.readyState==4 && xhttp.status==200){
			var data=JSON.parse(xhttp.responseText);
			if(data.success=="n") console.log("ERROR: "+data.error);
			else {
var passCheckMessage;
var passCheck=data.passStatus;
if(passCheck=='yes') passCheckMessage='True';
else passCheckMessage='False';
          console.log("SUCCESS!\nViews: "+data.stat+"\nLast View: "+data.lastView+"\nis Encrypted: "+passCheckMessage);
                 }
		}
	}
    xhttp.open('GET','https://do0.ir/stat_api/{LINK_NAME}',true);
  xhttp.send();

مشاهده کد در ادیتور