راهنمای API

مستندات کامل API برای توسعه‌دهندگان

معرفی

Base URL: https://qdoc.ir/api/chat
Authentication: Anonymous (فعلاً نیاز به احراز هویت ندارد)
Format: JSON
HTTP Method: POST

Endpoint: POST /api/chat

این endpoint برای ارسال پیام از طریق API استفاده می‌شود.

Request Body

{
  "username": "string",           // نام کاربری فرستنده (الزامی)
  "message": "string",            // متن پیام (الزامی)
  "receiverUsername": "string"    // نام کاربری گیرنده (اختیاری - برای پیام خصوصی)
}

Response

در صورت موفقیت، پاسخ زیر بازگردانده می‌شود:

HTTP 200 OK

Task<MessageModel>

Status Codes

  • 200 OK: پیام با موفقیت ارسال شد
  • 400 Bad Request: اطلاعات ورودی نامعتبر است
  • 500 Internal Server Error: خطای سرور

مثال‌های کد

# ارسال پیام عمومی
curl -X POST https://qdoc.ir/api/chat \
  -H "Content-Type: application/json" \
  -d '{
    "username": "device-a",
    "message": "Hello from API"
  }'

# ارسال پیام خصوصی
curl -X POST https://qdoc.ir/api/chat \
  -H "Content-Type: application/json" \
  -d '{
    "username": "device-a",
    "message": "Hello from API",
    "receiverUsername": "device-b"
  }'

Model Schema

SendMessageDtoModel

Field Type Required Description
username string نام کاربری فرستنده پیام
message string متن پیام
receiverUsername string نام کاربری گیرنده (برای پیام خصوصی)

نکات مهم

  • ✅ تمام درخواست‌ها باید با Content-Type: application/json ارسال شوند
  • ✅ اگر receiverUsername مشخص نشود، پیام به صورت عمومی ارسال می‌شود
  • ✅ نام کاربری باید معتبر باشد (کاربر باید در سیستم فعال باشد)
  • ⚠️ فعلاً محدودیت Rate Limiting وجود ندارد اما در نسخه‌های آینده اضافه خواهد شد
  • ⚠️ Authentication در نسخه‌های آینده اضافه خواهد شد

Best Practices

  • ✅ از HTTPS استفاده کنید (در production)
  • ✅ Error handling مناسب برای درخواست‌ها پیاده‌سازی کنید
  • ✅ Timeout مناسب برای درخواست‌ها تنظیم کنید
  • ✅ از Retry logic برای درخواست‌های ناموفق استفاده کنید
  • ✅ لاگ‌گیری مناسب برای debugging پیاده‌سازی کنید

پشتیبانی

در صورت بروز مشکل یا سوال، می‌توانید از صفحه تماس با ما با ما در ارتباط باشید.

An error has occurred. This application may no longer respond until reloaded. Reload 🗙