ایپیآی یا Application Programming Interface یکی از کاربردی ترین فناوری ها در زمینه توسعه سایت است. به وسیله این فناوری دو و یا چند وبسایت میتوانند بدون توجه به زبان برنامه نویسی به وسیله XML و JSON با هم ارتباط برقرار کنند.
ایپیآی فایلزی، یک API کاربردی برای ارتقا سطح مدیریت فایل های نرم افزارتان است.
حال تنها قابلیت فشرده سازی فایل های CSS ،JS ،WEBP،JPG و PNG وجود دارد. اما در آینده تمامی قابلیت های وبسایت فایلزی مانند تغییر سایز تصاویر به این API اضافه میشوند.
قبل از مطالعه این مقاله پیشنهاد میکنم مستندات فایلزی را مطالعه کنید.
به صورت کلی برای استفاده از این API باید یک درخواست به آدرس مربوط به این API ارسال کنید. اگر با نحوه ارسال درخواست به فایل آشنایی ندارید، عبارت زیر را در گوگل جستجو کنید.
Send Request For JSON {Language Name}
بخش {Language Name} را با نام زبان برنامه نویسی که استفاده میکنید جایگزین کنید. برای مثال:
Send Request For JSON PHP
خروجی این API یک JSON است و از این رو باید با نحوه کار با JSON در زبان برنامه نویسی مورد استفاده توسط خود نیز آگاه باشید. اگر از این موضوع آگاهی ندارید عبارت زیر را در گوگل جستجو کنید.
Work With JSON {Language Name}
برای فشرده سازی تصاویر، فرمت آدرس درخواست به API باید به شکل زیر باشد:
https://filzy.ir/api.php?file=File_Address&res=Quality
File_Address : آدرس فایل || Quality : کیفیت تصویر
کیفیت تصویر عددی بین 1 تا 98 است. عدد کمتر برابر است با فشرده سازی و کاهش کیفیت بیشتر.
آدرس تصویر باید آدرس کامل یک تصویر JPG یا PNG با HTTP یا HTTPS باشد.
آدرس تصویر به صورت کلی اجباری نیست. اما در صورتی که این فیلد را وارد نکنید به صورت پیش فرض بر روی 75 قرار میگیرد. همچنین این فیلد تنها در فشرده سازی فایل های JPG و WEBP کاربرد دارد و در فایل های دیگر تاثیری ندارد.
اگر منظور از فرمت آدرس را متوجه نشدید نگران نباشید. جلوتر به شکل عملی از این API استفاده میکنیم.
$file = 'https://i.picsum.photos/id/674/200/300.jpg?hmac=kS3VQkm7AuZdYJGUABZGmnNj_3KtZ6Twgb5Qb9ITssY'; $output = file_get_contents("https://filzy.ir/api.php?file=$file&res=50"); $output = json_decode($output, true); echo $output['file']; // Output compressed File Address
همانطور که میبینید فرمت فایلی که توضیح داده بودیم را به file_get_contents پاس دادیم تا خروجی API را دریافت کنیم.
var request = new XMLHttpRequest(); var file = 'https://i.picsum.photos/id/674/200/300.jpg?hmac=kS3VQkm7AuZdYJGUABZGmnNj_3KtZ6Twgb5Qb9ITssY'; request.open('GET', `http://localhost/fillzy/api.php?file=${file}&res=50`, false); request.send(); var output = JSON.parse(request.responseText).file; console.log(output); // Output compressed File Address // OR fetch(`http://localhost/fillzy/api.php?file=${file}&res=50`).then(response => response.json()).then(json => console.log(json)) // Output compressed File Address
در Javascript دو راه برای استفاده از این API وجود دارد.
راه اول استفاده از XMLHttpRequest و راه دوم استفاده از Fetch است.
به صورت کلی خروجی این API آدرس فایل جدید یا یک ارور است.
یک نمونه خروجی موفق:
{"file" : "myImage.png"}
همانطور که میبینید درصورت موفقیت آمیز بودن انجام عملیات خروجی این API چیزی مشابه به شکل بالا خواهد بود.
یک نمونه خروجی ناموفق:
[{ "error_num" : 0, "error" : "در دریافت فایل مشکلی پیش آمد. لطفا آدرس فایل را بررسی کنید" }]
همانطور که مشاهده میکنید زمانی که مشکلی رخ میدهد خروجی JSON به دو بخش error_num(شناسه خطا) و error(متن خطا) تقسیم میشود.
برای مدیریت خطا میتوانید از error_num و error استفاده کنید. یک راه ساده برای بررسی موفقیت آمیز بودن یا شکست عملیات، بررسی وجود داشتن error_num در خروجی است.
لیست کامل خطا های API فایلزی:
[{ "error_num" : -1, "error" : "آدرس فایل وجود ندارد." }][{ "error_num" : 0, "error" : "در دریافت فایل مشکلی پیش آمد. لطفا آدرس فایل را بررسی کنید" }] [{ "error_num" : 1, "error" : "واکنش نامناسب. کد :" }] [{ "error_num" : 2, "error" : "حجم فایل از حداکثر حجم مجاز(3.5مگابایت) بیشتر است." }] [{ "error_num" : 3, "error" : "فرمت فایل نامناسب است. تنها PNG و JPG/JPEG قابل قبول است." }]
برای مشاهده توضیحات هر خطا میتوانید از مستندات فایلزی استفاده کنید.
در این مقاله به توضیحاتی در مورد نحوه استفاده از API فایلزی پرداختیم. این مقاله در صورت آپدیت API فایلزی آپدیت میشود. همچنین در آینده در این مقاله به نکات جزئی تر نیز میپردازیم.
آخرین اخبار فایلزی را از Twitter دنبال کنید.