API ما یک راهکار جامع برای دسترسی به دادههای سیستم است. این API به شما امکان میدهد تا به راحتی با سیستم ما تعامل داشته باشید و از امکانات آن استفاده کنید.
برای استفاده از API، شما نیاز به یک توکن احراز هویت دارید. این توکن را میتوانید از طریق پنل کاربری خود دریافت کنید.
توکن را در هدر درخواستها قرار دهید:
Authorization: Token YOUR_API_TOKEN
Content-Type: application/json
دریافت لیست تمام محصولات با امکان فیلتر و صفحهبندی
{
"count": 100,
"next": "https://api.example.com/api/products/?page=2",
"previous": null,
"results": [
{
"id": 1,
"title": "نام محصول",
"price": 100000,
"category": "دستهبندی",
"in_stock": true
}
]
}
API محصولات از امکانات پیشرفته فیلتر، مرتبسازی و صفحهبندی پشتیبانی میکند.
page: شماره صفحه مورد نظر (پیشفرض: 1)page_size: تعداد آیتمهای هر صفحه (پیشفرض: 1، حداکثر: 100)ordering: مرتبسازی بر اساس فیلد دلخواهname: مرتبسازی بر اساس نام محصولprice: مرتبسازی بر اساس قیمتcreated_at: مرتبسازی بر اساس تاریخ ایجادupdated_at: مرتبسازی بر اساس تاریخ بروزرسانیبرای مرتبسازی نزولی، یک علامت منفی (-) قبل از نام فیلد استفاده کنید. مثال: -price برای نمایش گرانترین محصولات در ابتدا.
category: فیلتر براساس دستهبندی محصول (استفاده از slug دستهبندی)min_price: فیلتر محصولات با قیمت بیشتر یا مساوی مقدار تعیین شدهmax_price: فیلتر محصولات با قیمت کمتر یا مساوی مقدار تعیین شدهin_stock: فیلتر محصولات براساس موجودی (true/false)search: جستجو در نام و توضیحات محصولصفحهبندی:
/api/products/?page=2&page_size=20
مرتبسازی:
/api/products/?ordering=-price
فیلترهای محدوده قیمت:
/api/products/?min_price=1000000&max_price=5000000
فیلتر موجودی:
/api/products/?in_stock=true
ترکیب چند فیلتر:
/api/products/?category=electronics&min_price=1000000&ordering=-price&page=2
دریافت محصولات بر اساس دستهبندی با امکان محدود کردن تعداد نتایج
slug_category: شناسه یکتای دستهبندی (اختیاری)limit: حداکثر تعداد نتایج (اختیاری، پیشفرض: 50، حداکثر: 100)حالت 1: دریافت محصولات یک دستهبندی خاص
/api/products/by_category/?slug_category=electronics&limit=20
حالت 2: دریافت همه محصولات (تا 50 محصول) در صورت نبود دستهبندی
/api/products/by_category/?slug_category=invalid-category
حالت 3: دریافت همه محصولات با تعیین محدودیت تعداد
/api/products/by_category/?limit=30
{
"results": [
{
"id": 1,
"category": {
"id": 2,
"name": "الکترونیک",
"slug": "electronics",
"description": "محصولات الکترونیکی",
"image": "categories/electronics.jpg"
},
"name": "گوشی موبایل سامسونگ",
"slug": "samsung-mobile",
"description": "گوشی موبایل سامسونگ گلکسی S21",
"price": 15000000,
"discount_price": 14000000,
"stock": 25,
"is_available": true,
"images": [
{
"id": 1,
"image": "products/samsung-s21.jpg",
"is_main": true
}
],
"created_at": "2024-04-15T09:30:00Z",
"updated_at": "2024-04-20T14:20:00Z"
}
]
}
جستجو در نام و توضیحات محصولات
search: کلمه کلیدی برای جستجو در نام و توضیحات محصولات/api/products/?search=گوشی
دریافت لیست تمام مقالات وبلاگ
{
"count": 25,
"next": "https://api.example.com/api/blog/articles/?page=2",
"previous": null,
"results": [
{
"id": 1,
"title": "عنوان مقاله",
"slug": "article-slug",
"summary": "خلاصه مقاله",
"published_at": "2024-04-20T10:00:00Z",
"category": {
"id": 1,
"name": "تکنولوژی",
"slug": "technology"
}
}
]
}
API مقالات وبلاگ از امکانات پیشرفته فیلتر، مرتبسازی و صفحهبندی پشتیبانی میکند.
page: شماره صفحه مورد نظر (پیشفرض: 1)page_size: تعداد آیتمهای هر صفحه (پیشفرض: 1، حداکثر: 100)ordering: مرتبسازی بر اساس فیلد دلخواهtitle: مرتبسازی بر اساس عنوان مقالهcreated_at: مرتبسازی بر اساس تاریخ ایجادupdated_at: مرتبسازی بر اساس تاریخ بروزرسانیviews_count: مرتبسازی بر اساس تعداد بازدیدبرای مرتبسازی نزولی، یک علامت منفی (-) قبل از نام فیلد استفاده کنید. مثال: -created_at برای نمایش جدیدترین مقالات در ابتدا.
category: فیلتر براساس دستهبندی مقاله (استفاده از slug دستهبندی)search: جستجو در عنوان و محتوای مقالهصفحهبندی:
/api/blog/articles/?page=2&page_size=20
مرتبسازی:
/api/blog/articles/?ordering=-views_count
فیلتر براساس دستهبندی:
/api/blog/articles/?category=technology
جستجو در مقالات:
/api/blog/articles/?search=پایتون
ترکیب چند فیلتر:
/api/blog/articles/?category=programming&search=پایتون&ordering=-created_at&page=2
دریافت مقالات بر اساس دستهبندی با امکان محدود کردن تعداد نتایج
slug_category: شناسه یکتای دستهبندی (اختیاری)limit: حداکثر تعداد نتایج (اختیاری، پیشفرض: 50، حداکثر: 100)حالت 1: دریافت مقالات یک دستهبندی خاص
/api/blog/articles/by_category/?slug_category=technology&limit=20
حالت 2: دریافت همه مقالات (تا 50 مقاله) در صورت نبود دستهبندی
/api/blog/articles/by_category/?slug_category=invalid-category
حالت 3: دریافت همه مقالات با تعیین محدودیت تعداد
/api/blog/articles/by_category/?limit=30
{
"results": [
{
"id": 1,
"title": "آموزش پایتون",
"slug": "python-tutorial",
"summary": "آموزش مقدماتی پایتون",
"published_at": "2024-04-15T09:30:00Z",
"category": {
"id": 2,
"name": "برنامهنویسی",
"slug": "programming"
}
},
{
"id": 5,
"title": "آموزش جاوااسکریپت",
"slug": "javascript-tutorial",
"summary": "آموزش پایهای جاوااسکریپت",
"published_at": "2024-04-10T14:20:00Z",
"category": {
"id": 2,
"name": "برنامهنویسی",
"slug": "programming"
}
}
]
}
دریافت لیست پزشکان با اطلاعات تخصص و ساعات کاری
{
"count": 50,
"results": [
{
"id": 1,
"name": "دکتر محمدی",
"specialty": "متخصص قلب",
"experience": 15,
"clinic": "بیمارستان مهر",
"working_hours": "9:00-17:00"
}
]
}
دریافت لیست فیلمها با اطلاعات کامل
{
"count": 200,
"results": [
{
"id": 1,
"title": "عنوان فیلم",
"year": 2024,
"genre": "درام",
"director": "کارگردان",
"rating": 8.5
}
]
}
دریافت لیست بازیگران با اطلاعات فیلمها
{
"count": 150,
"results": [
{
"id": 1,
"name": "نام بازیگر",
"birth_date": "1980-01-01",
"nationality": "ایرانی",
"movies_count": 30
}
]
}
دریافت لیست حرکات ورزشی با جزئیات کامل
{
"count": 50,
"results": [
{
"id": 1,
"name": "پرس سینه",
"slug": "bench-press",
"description": "تقویت عضلات سینه و سرشانه",
"instruction": "روی نیمکت دراز بکشید، میله را بگیرید و به آرامی بالا و پایین ببرید.",
"tips": "دقت کنید که آرنجهای شما بیش از حد خم نشوند.",
"category": {
"id": 1,
"name": "سینه",
"slug": "chest",
"description": "تمرینات مربوط به عضلات سینه",
"image": "/media/exercise-categories/chest.jpg"
},
"muscle_groups": [
{
"id": 1,
"name": "سینه",
"description": "عضلات سینه",
"image": "/media/muscle-groups/chest.jpg"
},
{
"id": 2,
"name": "سرشانه",
"description": "عضلات سرشانه",
"image": "/media/muscle-groups/shoulders.jpg"
}
],
"equipment": [
{
"id": 1,
"name": "هالتر",
"description": "میله وزنهبرداری",
"image": "/media/equipments/barbell.jpg"
},
{
"id": 2,
"name": "نیمکت",
"description": "نیمکت پرس سینه",
"image": "/media/equipments/bench.jpg"
}
],
"difficulty": "intermediate",
"image": "/media/exercises/bench-press.jpg",
"video_url": "https://example.com/videos/bench-press.mp4",
"images": [
{
"id": 1,
"image": "/media/exercise-images/bench-press-1.jpg",
"is_main": true
},
{
"id": 2,
"image": "/media/exercise-images/bench-press-2.jpg",
"is_main": false
}
],
"created_at": "2024-04-20T10:00:00Z",
"updated_at": "2024-04-20T12:00:00Z"
}
]
}
دریافت لیست دستهبندیهای حرکات ورزشی
میتوانید حرکات ورزشی را بر اساس معیارهای مختلف فیلتر کنید:
category: فیلتر بر اساس دستهبندیmuscle_group: فیلتر بر اساس گروه عضلانیdifficulty: فیلتر بر اساس سطح دشواریequipment: فیلتر بر اساس تجهیزاتsearch: جستجو در نام، توضیحات، دستورالعمل و نکات/api/exercises/exercises/?category=chest
/api/exercises/exercises/?difficulty=beginner
/api/exercises/exercises/?search=پرس
دریافت حرکات ورزشی بر اساس دستهبندی با قابلیت محدود کردن تعداد نتایج
slug_category: شناسه یکتای دستهبندی (اختیاری)limit: حداکثر تعداد نتایج (اختیاری، پیشفرض: 50، حداکثر: 100)/api/exercises/exercises/by_category/?slug_category=chest&limit=10
// دریافت لیست پزشکان
fetch('https://api.example.com/api/doctors/', {
method: 'GET',
headers: {
'Authorization': 'Token YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
import requests
# دریافت لیست فیلمها
headers = {
'Authorization': 'Token YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
response = requests.get('https://api.example.com/api/movies/', headers=headers)
data = response.json()
print(data)