بکندباز

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

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

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

نمونه هایی از موارد استفاده این ابزار:

– تحلیل اطلاعات کاربران وردپرس با کتابخانه پایتون pandas
– پیش بینی های آینده فروش در وردپرس از طریق کتابخانه های پایتون
– ساخت ربات تلگرام برای ارسال درخواست ها بدون نیاز به خرید هاست
– ساخت ابزار های هوش مصنوعی با اتصال به openai
و ساخت انواع مختلف API برای هر زبان برنامه نویسی…

با ثبت نام در سایت، 100 درخواست رایگان به صورت هدیه دریافت می کنید که میتوانید برای تست API های سایت استفاده کنید.

دریافت کلید 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)

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

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

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

دستور API را با متد POST به آدرس  https://backendbaz.ir/auto-api/ ارسال کنید. بخش اصلی ای که API شما را از API دیگر کاربران مجزا می کند، داده json ی است که به این لینک ارسال می کنید و باید حاوی مقادیر زیر باشد:

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

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

2- پارامتر parameters: یک json شامل:

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

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

{
	"code_id": 35399,
	"parameters":
	{
		"method_name": "generate_password",
		"inputs":
		{
			"length": 20,
			"min_digits": 6,
			"min_special": 6
		}
	}
}

حالا برای فراخوانی API خود و دریافت یک پسورد در وردپرس، از دستور زیر استفاده می کنیم:

<?php

$client_key = 'Your Client Key';
$client_secret = 'Your Client Secret';

// تولید Authorization Header
$authorization = 'Basic ' . base64_encode($client_key . ':' . $client_secret);

// URL API
$url = 'https://backendbaz.ir/auto-api/';

// داده‌هایی که باید ارسال شوند
$data = array(
    'code_id' => 35399,
    'parameters' => array(
        'method_name' => 'generate_password',
        'inputs' => array(
            'length' => 20,
            'min_digits' => 6,
            'min_special' => 6,
        )
    )
);

// ارسال درخواست POST با wp_remote_post
$response = wp_remote_post($url, array(
    'method' => 'POST',
    'timeout' => 45, // زمان انتظار
    'headers' => array(
        'Content-Type' => 'application/json',
        'Authorization' => $authorization,
    ),
    'body' => wp_json_encode($data), // تبدیل داده‌ها به JSON
));

// بررسی پاسخ
if (is_wp_error($response)) {
    // اگر درخواست با خطا مواجه شد
    $error_message = $response->get_error_message();
    echo "خطا: $error_message";
} else {
    // نمایش پاسخ
    echo wp_remote_retrieve_body($response);
}

مستندات

 

Method POST
Endpoint https://backendbaz.ir/auto-api/
Headers
Content-type application/json
Authorization Basic Auth
Body
code_id integer: code_id to be compiled
parameters array: [“method_name”: “name of function”, “inputs”:”array 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/',
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 =>'{
    "code_id":33181,
    "parameters": 
       {"method_name": "calculate_average",
        "inputs":{"numbers": [1, 2, 3, 5]}
       }
}',
CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    $Authorization
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

                
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/"

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

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

print(response.text)