راهنمای استفاده از وب سرویس های مورد نیاز اپلیکیشن موبایل

این سند برای مصرف‌کننده‌های موبایل ساخته شده و مسیرهای واقعی پروژه را پوشش می‌دهد. برای هر endpoint، اطلاعات اصلی متد، ورودی‌ها، محدودیت‌ها و سطح دسترسی آورده شده است.

Base URL: http://localhost:5156 Format: JSON Auth: JWT Bearer

فهرست

قواعد کلی

فرمت درخواست/پاسخ
JSON
هدر احراز هویت
Authorization: Bearer <token>
سطح دسترسی پیش‌فرض
نیازمند توکن
استثنا
فقط /api/auth/getToken عمومی است

الگوی پاسخ‌ها

برای یکدست بودن مستندات، در این بخش قالب نمونه موفق و خطاها آورده شده است. ممکن است پاسخ واقعی برخی متدها در کد فعلی کمی متفاوت باشد، اما این الگو برای مصرف‌کننده API مناسب و خوانا است.

نمونه خروجی موفق

کد وضعیت
200 OK
{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "isOnline": true,
    "currentTemp": 4.5
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
403 Forbiddenعدم دسترسی
404 Not Foundدستگاه یا رکورد پیدا نشد
500 Internal Server Errorخطای داخلی سرور

نمونه خطا

{
  "isSuccess": false,
  "message": "دستگاه مورد نظر یافت نشد",
  "errors": [
    "DeviceSerial is invalid"
  ]
}

احراز هویت

POST GetToken

فیلدمقدار
نام متدGetToken
آدرس API / EndpointPOST /api/auth/getToken
نوع درخواستPOST
هدف متدصدور JWT برای مصرف‌کننده خارجی
سطح دسترسیعمومی

ورودی‌ها

پارامترنوعاجباریتوضیحمحدودیت‌ها
ClientIdstringبلهشناسه کلاینت خارجیغیرخالی
ClientSecretstringبلهکلید مخفی کلاینتغیرخالی

نمونه بدنه درخواست

{
  "clientId": "external-client",
  "clientSecret": "external-secret"
}

نمونه پاسخ

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "accessToken": "eyJhbGciOi...",
    "tokenType": "Bearer",
    "expiresInSeconds": 3600,
    "expiresAtUtc": "2026-07-07T10:00:00Z"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedکلاینت معتبر نیست
500 Internal Server Errorخطای داخلی سرور

اطلاعات دستگاه

GET GetProductInfo

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/info
هدف متدبرگرداندن نام محصول، مدل و IMEI دستگاه
سطح دسترسینیازمند توکن

ورودی‌ها

نوعناماجباریتوضیحمحدودیت‌ها
PathserialNumberبلهشماره سریال دستگاهباید دستگاه موجود باشد

پاسخ

نمونه درخواست

GET /api/devices/SN-TEST-001/info
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "productName": "Sample Product",
    "productModel": "Model-A"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetHasIot

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/has-iot
هدف متدتشخیص اینکه دستگاه در دیتاست فعلی IoT دارد یا نه
سطح دسترسینیازمند توکن

ورودی‌ها

نوعناماجباریتوضیحمحدودیت‌ها
PathserialNumberبلهشماره سریال دستگاهباید دستگاه موجود باشد

نمونه درخواست

GET /api/devices/SN-TEST-001/has-iot
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "hasIot": true
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetConnectionStatus

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/connection-status
هدف متداعلام وضعیت آنلاین/آفلاین بودن دستگاه
سطح دسترسینیازمند توکن

ورودی‌ها

نوعناماجباریتوضیحمحدودیت‌ها
PathserialNumberبلهشماره سریال دستگاهباید دستگاه موجود باشد

نمونه درخواست

GET /api/devices/SN-TEST-001/connection-status
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "connectionStatus": "Online"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetProductType

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/product-type
هدف متدبرگرداندن نوع محصول: Refrigerator / Freezer / Combi
سطح دسترسینیازمند توکن

ورودی‌ها

نوعناماجباریتوضیحمحدودیت‌ها
PathserialNumberبلهشماره سریال دستگاهدر صورت نبود دستگاه، پاسخ 400

نمونه درخواست

GET /api/devices/SN-TEST-001/product-type
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "productType": "Refrigerator"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

سنسورها

GET GetCurrentCabinTemperature

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/sensors/current-temperature
هدف متدبرگرداندن دمای فعلی یخچال و فریزر
سطح دسترسینیازمند توکن

ورودی‌ها

نوعناماجباریتوضیحمحدودیت‌ها
PathserialNumberبلهشماره سریال دستگاهباید داده سنسور موجود باشد

نمونه درخواست

GET /api/devices/SN-TEST-001/sensors/current-temperature
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "refrigeratorTemperature": 4,
    "freezerTemperature": -18
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا داده سنسور موجود نیست
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetInputVoltage

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/sensors/input-voltage
هدف متددریافت ولتاژ ورودی دستگاه
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/sensors/input-voltage
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "voltage": 220.0
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

دما

GET GetSetTemperature

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/Temperature/set-temperature
هدف متدبرگرداندن دمای تنظیم‌شده یخچال و فریزر
سطح دسترسینیازمند توکن

ورودی‌ها

نوعناماجباریتوضیحمحدودیت‌ها
PathserialNumberبلهشماره سریال دستگاهباید دستگاه موجود باشد

نمونه درخواست

GET /api/devices/SN-TEST-001/Temperature/set-temperature
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "refrigeratorSetTemperature": 4,
    "freezerSetTemperature": -18
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetFreezerRealTemperature

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/Temperature/freezer/real-temperature
هدف متدبرگرداندن دمای واقعی فریزر
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/Temperature/freezer/real-temperature
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "temperature": -18
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetRefrigeratorRealTemperature

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/Temperature/refrigerator-real-temperature
هدف متدبرگرداندن دمای واقعی یخچال
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/Temperature/refrigerator-real-temperature
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "temperature": 4
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

آیس‌میکر

GET GetIceMakerSetTemperature

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/IceMaker/ice-maker/set-temperature
هدف متددریافت دمای تنظیم‌شده آیس‌میکر
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/IceMaker/ice-maker/set-temperature
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "iceMakerSetTemperature": -12
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetIceMakerCurrentTemperature

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/IceMaker/ice-maker/current-temperature
هدف متددریافت دمای فعلی آیس‌میکر
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/IceMaker/ice-maker/current-temperature
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "currentTemperature": -10
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

فن

GET GetCondenserFanRpm

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/Fan/condenser-fan-rpm
هدف متدنمایش سرعت چرخش فن کندانسور
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/Fan/condenser-fan-rpm
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "rpm": 1200
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

کمپرسور

GET GetCompressorSpeed

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/Compressor/compressor/speed
هدف متددریافت سرعت کمپرسور
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/Compressor/compressor/speed
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "compressorSpeed": 1400
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetCompressorStatus

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/Compressor/compressor/status
هدف متدبرگرداندن وضعیت روشن/خاموش کمپرسور
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/Compressor/compressor/status
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "status": "On"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetCompressorRpm

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/Compressor/compressor-rpm
هدف متددریافت RPM کمپرسور
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/Compressor/compressor-rpm
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "compressorRpm": 1450
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

POST ReceiveCompressorEvent

فیلدمقدار
آدرس API / EndpointPOST /api/devices/{serialNumber}/Compressor/compressor-status
هدف متددریافت رویداد کمپرسور از منبع خارجی
سطح دسترسینیازمند توکن

ورودی‌ها

نوعناماجباریتوضیحمحدودیت‌ها
PathserialNumberبلهشماره سریال دستگاهباید معتبر باشد
Bodydtoدر نسخه فعلی خیربدنه رویداد در کد کامنت شده استاگر بعداً فعال شود، باید با قرارداد نهایی هماهنگ شود

نمونه درخواست

POST /api/devices/SN-TEST-001/Compressor/compressor-status
Authorization: Bearer eyJhbGciOi...
Content-Type: application/json

{
  "status": 1
}

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "eventCode": "0500",
    "serialNumber": "SN-TEST-001"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

تنظیمات دستگاه

POST SetDeviceMode

فیلدمقدار
آدرس API / EndpointPOST /api/devices/settings/mode
هدف متدارسال فرمان تغییر حالت کاری دستگاه
سطح دسترسینیازمند توکن

ورودی‌ها

فیلدنوعاجباریتوضیحمحدودیت‌ها
serialNumberstringبلهشماره سریال دستگاهباید دستگاه پیدا شود
modeenumبلهحالت دستگاهFridgeMin, FridgeMax, FridgeOff, FreezerOff, Combi

نمونه بدنه درخواست

{
  "serialNumber": "SN-TEST-001",
  "mode": "Combi"
}

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر، دستگاه پیدا نشد یا حالت نامعتبر است
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

POST SetTargetTemperature

فیلدمقدار
آدرس API / EndpointPOST /api/devices/settings/target-temperature
هدف متدارسال فرمان تغییر دمای هدف یخچال و فریزر
سطح دسترسینیازمند توکن

ورودی‌ها

فیلدنوعاجباریتوضیحمحدودیت‌ها
serialNumberstringبلهشماره سریال دستگاهباید دستگاه موجود باشد
RefrigeratorTargetTemperaturedecimalبلهدمای هدف یخچالبین 0 تا 5
FreezerTargetTemperaturedecimalبلهدمای هدف فریزربین -28 تا -14
RefrigeratorCurrentTemperaturedecimalبلهدمای فعلی یخچالبرای ساخت فرمان استفاده می‌شود
FreezerCurrentTemperaturedecimalبلهدمای فعلی فریزربرای ساخت فرمان استفاده می‌شود

نمونه بدنه درخواست

{
  "serialNumber": "SN-TEST-001",
  "refrigeratorCurrentTemperature": 4,
  "refrigeratorTargetTemperature": 3,
  "freezerCurrentTemperature": -18,
  "freezerTargetTemperature": -20
}

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر، دستگاه پیدا نشد یا مقدار دما خارج از بازه است
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

POST SetDeviceSwitches

فیلدمقدار
آدرس API / EndpointPOST /api/devices/settings/switches
هدف متدروشن/خاموش کردن سوئیچ‌های مختلف دستگاه
سطح دسترسینیازمند توکن

ورودی‌ها

فیلدنوعاجباریتوضیحمحدودیت‌ها
serialNumberstringبلهشماره سریال دستگاهباید دستگاه موجود باشد
IceMakerbool?خیروضعیت آیس‌میکراختیاری
WaterDispenserbool?خیروضعیت آبسردکناختیاری

نمونه درخواست

{
  "serialNumber": "SN-TEST-001",
  "iceMaker": true,
  "waterDispenser": false
}

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

POST SetFilterReset

فیلدمقدار
آدرس API / EndpointPOST /api/devices/settings/filter-reset
هدف متدارسال فرمان ریست فیلتر
سطح دسترسینیازمند توکن

ورودی‌ها

فیلدنوعاجباریتوضیحمحدودیت‌ها
serialNumberstringبلهشماره سریال دستگاهباید دستگاه موجود باشد
Statusenumبلهوضعیت ریست فیلترمقدار دقیق enum باید با کد نهایی تطبیق داده شود

نمونه درخواست

{
  "serialNumber": "SN-TEST-001",
  "status": "Reset"
}

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

تحلیل درب

GET GetDoorStatus

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/door-analysis/door-status
هدف متدبرگرداندن وضعیت فعلی درب‌ها
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/door-analysis/door-status
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "refrigeratorDoor": "Closed",
    "freezerDoor": "Open",
    "homeBarDoor": "Closed"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetDoorHistory

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/door-analysis/door-history
هدف متدبرگرداندن سری زمانی وضعیت باز/بسته بودن درب در 7 روز اخیر
سطح دسترسینیازمند توکن

محدودیت‌ها

  • بازه زمانی فعلی در کد به صورت ثابت 7 روز اخیر است.
  • پارامتر Query برای این متد تعریف نشده است.

نمونه درخواست

GET /api/devices/SN-TEST-001/door-analysis/door-history
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "name": "Door Status",
    "data": [
      { "x": "2026-07-01T00:00:00Z", "y": 0 },
      { "x": "2026-07-02T10:15:00Z", "y": 1 }
    ]
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetDoorOpenCounter

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/door-analysis/door-open-counter
هدف متدشمارش تعداد دفعات باز شدن درب در یک ماه اخیر
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/door-analysis/door-open-counter
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "refrigeratorCount": 12,
    "freezerCount": 8,
    "startDate": "2026-06-07T00:00:00Z",
    "endDate": "2026-07-07T00:00:00Z"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

GET GetDoorOpenDuration

فیلدمقدار
آدرس API / EndpointGET /api/devices/{serialNumber}/door-analysis/door-open-duration
هدف متدمحاسبه مدت زمان باز بودن درب در یک ماه اخیر
سطح دسترسینیازمند توکن

نمونه درخواست

GET /api/devices/SN-TEST-001/door-analysis/door-open-duration
Authorization: Bearer eyJhbGciOi...

نمونه پاسخ موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "refrigeratorDuration": "01:42:00",
    "freezerDuration": "00:54:00",
    "startDate": "2026-06-07T00:00:00Z",
    "endDate": "2026-07-07T00:00:00Z"
  }
}

خطاهای احتمالی

کد وضعیتتوضیح
400 Bad Requestورودی نامعتبر یا دستگاه پیدا نشد
401 Unauthorizedتوکن نامعتبر یا ارسال نشده
404 Not Foundدستگاه پیدا نشد
500 Internal Server Errorخطای داخلی سرور

نمونه الگوی استفاده

یک جریان معمول مصرف API به این شکل است:

  1. ابتدا با POST /api/auth/getToken توکن بگیرید.
  2. توکن را در هدر Authorization قرار دهید.
  3. برای خواندن وضعیت دستگاه، از endpointهای GET استفاده کنید.
  4. برای ارسال فرمان، از endpointهای POST بخش تنظیمات استفاده کنید.

نمونه هدر

Authorization: Bearer eyJhbGciOi...

نکات مهم