صفحهبندی
اندپوینتهای فهرستی با شمارهٔ صفحه و اندازهٔ صفحه صفحهبندی میشوند و مجموعها را در پاسخ گزارش میکنند.
صفحهبندی در دو بخش وجود دارد. جستوجوی ظرفیت هتل از Page و PageSize در بدنهٔ درخواست استفاده میکند. فهرستهای تفریحات از page و per_page در کوئریاسترینگ استفاده میکنند و یک بلوک meta.pagination برمیگردانند.
فهرستهای تفریحات#
page (از ۱ شروع میشود) و per_page را بفرستید. پاسخ ردیفها را در data قرار میدهد و meta.pagination را اضافه میکند.
{
"data": [ ... ],
"meta": {
"pagination": {
"total": 812,
"count": 50,
"per_page": 50,
"current_page": 1,
"total_pages": 17
}
},
"timestamp": "2026-10-15T16:24:49.648+08:00"
}برای پیمودن همهٔ صفحهها، صفحهٔ ۱ را درخواست کنید و ادامه دهید تا current_page به total_pages برسد.
const sessionId = "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f";
const all = [];
let page = 1, totalPages = 1;
do {
const params = new URLSearchParams({ SessionId: sessionId, page: String(page), per_page: "50" });
const res = await fetch("https://api.simorghapi.com/api/Activity/v2/products?" + params);
const body = await res.json();
all.push(...body.data);
totalPages = body.meta.pagination.total_pages;
page++;
} while (page <= totalPages);import requests
session_id = "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f"
all_rows, page, total_pages = [], 1, 1
while page <= total_pages:
res = requests.get(
"https://api.simorghapi.com/api/Activity/v2/products",
params={"SessionId": session_id, "page": page, "per_page": 50},
)
body = res.json()
all_rows.extend(body["data"])
total_pages = body["meta"]["pagination"]["total_pages"]
page += 1
اگر اندپوینت گروهی هست، صفحهبندی نکنید.
برای گرفتن کل کاتالوگ تفریحات، بهجای صفحهبهصفحه خواندن
products، یک بار /Activity/v2/products/all را فراخوانی کنید.
جستوجوی ظرفیت هتل#
Page (از ۱ شروع میشود) و PageSize (از ۱ تا ۲۰۰) را در بدنه بفرستید. پاسخ اطلاعات صفحهبندی و تعداد کل نتایج را در Meta گزارش میکند. API رزرو هتل را ببینید.
ویرایش این صفحه در گیتهابمشکلی دیدید؟ از پنل ← پشتیبانی خبرمان کنید.