دریافت داده از APIها (Query Data from APIs)
از Bricks 2.1 میتوانید از Query Loop builder قدرتمند برای دریافت و نمایش داده از یک API endpoint استفاده کنید — بدون نوشتن PHP سفارشی.
این قابلیت آزمایشی برای نمایش محتوا از سرویسهای third-party، APIهای عمومییا حتی سایت وردپرس دیگر از طریق REST API ایدهآل است.
شروع کار
یک Query Type جدید به نام API به شما امکان میدهد به REST API متصل شوید و داده مصرف کنید. پس از پیکربندی، پاسخ API parse شده و با سیستم تگ داده پویای Bricks رندر میشود — درست مانند هر Query Loop دیگر.
برای شروع:
- هر المان nestable که Query Loop را پشتیبانی میکند انتخاب کنید (مثلاً Container، Block، Div).
- Query Loop را فعال کنید و Query Type را روی API بگذارید.
- روی دکمه API Settings کلیک کنید تا popup پیکربندی API باز شود.

تنظیمات API
در popup تنظیمات API میتوانید همه موارد لازم برای فراخوانی API را تعریف کنید — مانند URL endpoint، HTTP method، headerها، parameterها و بیشتر.
پس از پیکربندی میتوانید داده پاسخ API را fetch کنید و در ستون سمت راست پیشنمایش دهید. همچنین میتوانید تگهای داده پویای سفارشی را کپی یا تولید کنید تا داده API را داخل حلقه بهراحتی رندر کنید.

Name
برچسب داخلی برای شناسایی این اتصال API (مثلاً «Books API»، «Google Spreadsheet A»).
URL (Required)
URL کامل API بر اساس مستندات.
HTTP Method
تعیین کنید GET (پیشفرض) یا POST انجام دهید.
Authorization
API Key (header یا URL parameter)، Bearer Token و Basic Auth را پشتیبانی میکند.
برای امنیت بیشتر میتوانید بهجای وارد کردن مستقیم مقادیر حساس از ثابت PHP استفاده کنید. گزینه «Use PHP Constant» را تیک بزنید و Bricks نام ثابت را برای شما تولید میکند. سپس مقدار آن را در محیط (مثلاً wp-config.php) تعریف کنید و Bricks در درخواست API به آن ارجاع میدهد.
Headers
headerهای پیشفرض:
Content-Type: application/jsonUser-Agent: BricksBuilder/{CURRENT_VERSION}
میتوانید header بیشتر اضافه کنید یا این پیشفرضها را در UI override کنید. این headerها با هر درخواست API ارسال میشوند.
URL Parameters
میتوانید جفت key-value اضافه کنید که بهعنوان query parameter به URL API append میشوند.
مثال: افزودن URL parameter با key limit و value 5 وقتی URL API https://dummyjson.com/recipes است، URL نهایی https://dummyjson.com/recipes?limit=5 تولید میشود.

Request Body
اگر HTTP method روی POST باشد، میتوانید request body را در یکی از فرمتهای زیر ارائه دهید:
- JSON
- Form Data
- x-www-form-urlencoded
برای ارسال payload هنگام تعامل با endpointهای POST-based از این استفاده کنید.
Response path
object path را برای استخراج داده از پاسخ مشخص کنید. برای استفاده از کل پاسخ سطح بالا خالی بگذارید.
مثال: data.results برای گرفتن results از {data: {results: […]}}
مهم
مهم: فقط داده آرایهای قابل حلقهزدن است. response path باید آرایه برگرداند! اگر به object resolve شود، Query Loop چیزی رندر نمیکند.
Cache duration
برای غیرفعال کردن cache روی 0 بگذارید. پیشفرض 300 ثانیه (پنج دقیقه) است.
Bricks پاسخ را با WordPress transients ذخیره میکند که به کاهش فراخوانیهای غیرضروری API هنگام ساخت صفحه یا بازدیدهای مکرر کمک میکند.
صفحهبندی (Pagination)
Query Loop API در Bricks از pagination پشتیبانی میکند — به شرطی که API هدف از طریق شماره صفحه یا offset قابل پیمایش باشد.
برای فعالسازی pagination:
- checkbox «Has pagination» را در تنظیمات API فعال کنید.
- المان Pagination Bricks را به صفحه اضافه کنید و target query را روی API query loop بگذارید.
- «Total items path» را تعریف کنید تا Bricks بداند چند صفحه تولید کند.
- روش pagination «Page number» یا «Offset» را انتخاب کنید و پیکربندی را کامل کنید.
این تضمین میکند Bricks pagination را بهصورت پویا رندر کند و هنگام پیمایش صفحات داده صحیح را بارگذاری کند.
روش pagination: Page number
وقتی API با مشخص کردن شماره صفحه (مثلاً page=3) پشتیبانی میکند از این روش استفاده کنید.
مثال: WordPress REST API
pageرا بهعنوان URL parameter اضافه کنیدper_pageرا برای تعداد آیتم در هر صفحه تنظیم کنید (مثلاًper_page=3)- Has pagination را فعال کنید
- Page parameter را روی
pageبگذارید
Bricks هنگام تعامل کاربر با المان pagination مقدار page=n را بهطور خودکار بهروز میکند.

Total Items Path
WordPress REST API x-wp-totalpages را در header پاسخ شامل میشود، بنابراین میتوانید header.x-wp-totalpages را برای فیلد «Total items path» بگذارید.
این به Bricks میگوید چند صفحه وجود دارد و ساختار pagination صحیح تولید میشود.
روش pagination: Offset
وقتی API به پیمایش مبتنی بر offset نیاز دارد از این استفاده کنید.
مثال: DummyJSON Products API
بر اساس مستندات، برای گرفتن داده صفحه ۳ وقتی limit (آیتم در هر صفحه) 5 است، باید limit=5&skip=10 در درخواست API پاس دهید. در Bricks طبق تصویر زیر تنظیم کنید.

با این کار، کلیک روی شماره صفحه «3» در المان pagination پارامتر limit=5&skip=10 هنگام درخواست تولید میکند.
توجه کنید body.total را هم در فیلد «Total items path» مشخص کردهایم.
پاسخ API
داده پاسخ API fetch شده در پنل API response سمت راست نمایش داده میشود.
این پنل به شما امکان میدهد داده پاسخ را در نمای tree (پیشفرض) بررسی کنید. روی دکمه «RAW JSON» کلیک کنید تا پاسخ را در فرمت JSON خام ببینید.
استفاده از داده پاسخ API در حلقه
Bricks تگ داده پویای جدید query_api را برای رندر هر بخش از پاسخ API تعریفشده از طریق فیلتر @key معرفی میکند.

در پاسخ API بالا، برای رندر name دستور، از {query_api:raw @key:name} داخل Query Loop استفاده کنید.
برای خروجی داده تودرتو، مانند عنوان پست در پاسخ WordPress REST API، از delimiter | (pipe) استفاده کنید: {query_api:raw @key:title|rendered}.
همچنین میتوانید تگ داده پویای را کپی کنید با hover روی dataset موردنظر و کلیک روی آیکون clipboard برای کپی تگ آماده.
سوم، روی آیکون + کنار آیکون clipboard کلیک کنید تا تگ داده پویای سفارشی تولید شود که داخل DD picker در دسترس باشد.

یادداشت
یادداشت: تگ داده پویای ایجادشده در localStorage مرورگر ذخیره میشود نه پایگاه داده. بنابراین فقط شما در مرورگر خود به آن دسترسی دارید.
