بکندباز

راهنمای ارسال درخواست به ابزار “تبدیل سریع کد به API”

ابزار تبدیل سریع کد به API برای سرعت بخشیدن به مسیر توسعه برنامه نویسان عزیز و جلوگیری از درگیری با مسائل سمت سرور و … آماده شده است. همچنین با استفاده از این ابزار می توانید به سادگی کد های مختلف را با زبان های مختلف نوشته و با API به همدیگر پیوند دهید.

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

 ویژگی‌های کلیدی این ابزار:

  • بدون نیاز به سرور: تمامی فرآیندها به‌صورت آنلاین و بدون نیاز به هاست یا سرور اختصاصی انجام می‌شود.
  • رابط کاربری ساده: با استفاده از ویرایشگر آنلاین سایت، می‌توانید کدهای خود را به‌راحتی وارد کرده و API مربوطه را فعال کنید.
  • پشتیبانی از زبان‌های مختلف: علاوه بر پایتون، این ابزار از زبان‌های برنامه‌نویسی متنوعی پشتیبانی می‌کند که امکان اتصال کدهای مختلف را از طریق API فراهم می‌سازد.
  • سرعت بالا: در کمتر از ۵ دقیقه می‌توانید کد خود را به API تبدیل کرده و در پروژه‌های مختلف از آن استفاده کنید.
  • پرداخت به ازای استفاده: بدون نیاز به هزینه های سنگین ماهانه هاست و سرور، فقط به ازای هر درخواست، هزینه پرداخت می کنید.

با ثبت نام در سایت، 100 درخواست رایگان به صورت هدیه دریافت می کنید که میتوانید برای تست API های سایت استفاده کنید. پس از آن، برای هر درخواست 10 تومان از شارژ حساب شما کسر خواهد شد.

دریافت کلید API 

انواع API

شما با استفاده از این ابزار می توانید دو نوع API بسازید که برای کاربرد های مختلف به دو نوع کلی تقسیم می شود:

1- ساخت endpoint معمولی

این روش همانند سایت API های رایج هست. کد خود را می نویسید، endpoint را دریافت می کنید، یک درخواست POST به API ارسال کرده و پاسخ خود را سریعاً دریافت می کنید.

2- ساخت اسکریپت پردازشی

نوع دوم از API ها مربوط به اسکریپت هایی هستند که زمان طولانی تری برای پردازش نیاز دارند. مثلاً اسکریپتی نوشته اید که به openai متصل می شود و یک متن طولانی را قرار است دریافت کند. یا مثلاً اسکریپتی نوشته اید که آدرس یک فایل ویدیویی را دریافت کرده و صدای آن را استخراج می کند. این نوع API ها نمی توانند پاسخ را سریعاً به شما تحویل دهند و از طرفی نمی توان درخواست را برای مدت زیادی باز نگه داشت و یک Timeout وجود دارد. در مورد این API ها، API ابتدا یک پاسخ از پیش تعیین شده مثل “the process started…” را به شما برمیگرداند تا درخواست بسته شود و سپس در پس زمینه درخواست شما را اجرا می کند. در این موارد شما باید از طریق کد خود، پاسخ را به یک webhook سفارشی ارسال کنید و یا در فایل لاگ ذخیره کنید.

 

مثالی از سایت API ساده

بیایید با یک مثال این موضوع را بررسی کنیم:

فرض کنید با پایتون کدی برای تولید رمز عبور تصادفی ساخته ایم و میخواهیم از آن در وردپرس استفاده کنیم (البته این کار را با PHP و در وردپرس نیز می توان به سادگی انجام داد و معمولاً برای کارهایی مثل آنالیز داده های فروش و … میتوانیم از این ابزار استفاده کنیم، اما برای آموزش این مثال ساده را در نظر گرفتیم)

کد پایتون مربوطه:

import secrets
import string

def generate_password(length=12, min_digits=2, min_special=2):
    if length < min_digits + min_special:
        raise ValueError("Length too short for the required number of digits and special characters.")

    # کاراکترهای مورد نیاز
    letters = string.ascii_letters
    digits = string.digits
    special_chars = "!@#$%^&*()"

    # انتخاب تصادفی
    password = [
        secrets.choice(letters) for _ in range(length - min_digits - min_special)
    ] + [
        secrets.choice(digits) for _ in range(min_digits)
    ] + [
        secrets.choice(special_chars) for _ in range(min_special)
    ]

    # مخلوط کردن کاراکترها
    secrets.SystemRandom().shuffle(password)
    return "".join(password)
Python

حالا میخواهیم در وردپرس این تابع را فراخوانی کنیم. برای اینکار، ابتدا کد بالا را در ویرایشگر آنلاین سایت بکندباز وارد کرده و کد را ذخیره کنید:

بعد از ذخیره یک آیکون (API) در سایدبار سمت راست مشخص می شود. روی آن کلیک کنید و روی دکمه فعال سازی API بزنید. در زمان تست حال دیباگ را نیز فعال نگه دارید اما در مرحله اجرا، تیک این بخش را بردارید تا خطاهای کد و … هنگام ارسال درخواست مشخص نشود.

در این مرحله باید وارد پنل کاربری خود شده و کلید API خود را دریافت کنید. دو کلید client key و client secret به شما داده می شود که باید فوراً در جایی ذخیره کنید. (درصورتی که client secret خود را فراموش کنید باید دوباره وارد این صفحه شده و دو کلید جدید دریافت کنید). این کلید ها را باید در بخش headers به شیوه Basic Auth به API ارسال کنید. در بخش headers، مقدار content-type را نیز برابر با  application/json قرار دهید، چرا که داده ها باید به صورت json ارسال شوند.

پارامتر های مورد نیاز تابع را با متد POST به آدرس  https://backendbaz.ir/auto-api/{code_id}/{method_name} ارسال کنید:

1- پارامتر code_id که برابر با شناسه کد شما است و می توانید آن را از آدرس کد خود در ویرایشگر آنلاین سایت برداشت کنید:
backendbaz.ir/online-editor/python/35399

برای نمونه در لینک کد بالا، شناسه کد 35399 است.

2- method_name: نام تابع اصلی که قرار است فراخوانی شود

3- پارامتر parameters باید با فرمت json به لینک بالا ارسال شود که شامل پارامتر های ورودی تابع است:

  • لیست ورودی های مورد نظر به صورت کلید/مقدار، با کلید inputs

با این توضیحات اگر بخواهیم یک پسورد 20 کاراکتری با حداقل 6 عدد و 6 کاراکتر خاص دریافت کنیم، دیتایی که باید برای این API ارسال کنیم json زیر است:

curl -X POST https://backendbaz.ir/auto-api/35399/generate_password \
-H "Content-Type: application/json" \
-d '{"length": 20,"min_digits": 6,"min_special": 6}'


		
	
JavaScript

 

مستندات

 

 

Method POST
Endpoint https://backendbaz.ir/auto-api/{auto-api}/{method_name}
Headers
Content-type application/json
Authorization Basic Auth
Body : “dictionary of inputs”

نمونه کد

این نمونه کد برای اجرای API مربوط به این کد است:

<?php

$client_key = 'Your Client Key';
$client_secret = 'Your Client Secret';
$Authorization = sprintf('Authorization: Basic %s', base64_encode(sprintf('%s:%s', $client_key, $client_secret)));

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://backendbaz.ir/auto-api/{code_id}/{method_name}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{"numbers": [1, 2, 3, 5]}',
CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    $Authorization
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

                
PHP
import requests
import requests
import json
from base64 import b64encode

userAndPass = b64encode(b"client_key:$client_secret").decode("ascii")
Authorization = { 'Authorization' : 'Basic %s' %  userAndPass }
url = "https://backendbaz.ir/auto-api/{code_id}/{method_name}"

payload = json.dumps({
      "number": [
        1,
        2,
        3,
        5
      ]
    })
headers = {
  'Content-Type': 'application/json',
  Authorization 
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)


                
            
Python

 

مثالی اسکریپت پردازشی

تمام مراحل ساخت این نوع API مشابه روش قبل است، فقط باید در تنظیمات، گزینه “اسکریپت پردازشی” را تیک بزنید و همچنین مقدار timeout را با تخمین از زمان پردازش برنامه خود، افزایش دهید.

کد زیر مثالی از یک اسکریپت پردازشی است که با استفاده از کتابخانه ffmpeg-python صدا را از ویدیوی دریافتی استخراج می کند و نتیجه را به یک ربات تلگرام ارسال می کند.

import os
import ffmpeg
import requests
import telegram
from telegram import InputFile

def extract_audio_from_video(video_file_url, tg_bot_token, chat_id):
    # دانلود فایل ویدیویی
    video_file = "temp_video.mp4"
    download_file(video_file_url, video_file)

    # استخراج صدا از ویدیو
    audio_file = "temp_audio.mp3"
    (
        ffmpeg
        .input(video_file)
        .output(audio_file, format='mp3')
        .run()
    )

    # ارسال فایل صوتی به تلگرام
    bot = telegram.Bot(token=tg_bot_token)
    with open(audio_file, 'rb') as audio:
        bot.send_audio(chat_id=chat_id, audio=InputFile(audio))

    # پاک کردن فایل‌های موقت
    os.remove(video_file)
    os.remove(audio_file)


def download_file(url, local_filename):
    with requests.get(url, stream=True) as r:
        r.raise_for_status()
        with open(local_filename, 'wb') as f:
            for chunk in r.iter_content(chunk_size=8192):
                f.write(chunk)
    return local_filename
Python