این API از کدهای استاندارد HTTP استفاده میکند. کد ۴۰۰ بسته به نوع خطا به دو شکل متفاوت بازمیگردد — هر دو شکل در ادامه آمده است.
| Status | توضیح |
|---|---|
| 200 | درخواست با موفقیت انجام شد. |
| 400 | فیلدهای ناقص یا نامعتبر (بدنه ساختیافته Problem Details) یا خطای قوانین کسبوکار (بدنه متنی ساده) — هر دو شکل را در صفحه «خطاها و کدهای وضعیت» ببینید. |
| 401 | توکن Bearer وجود ندارد یا منقضی شده — دوباره Account/Login را فراخوانی کنید. |
| 404 | منبع درخواستشده وجود ندارد — شناسه یا کدی که فرستادهاید را بررسی کنید. |
400 covers two unrelated response shapes depending on what failed — worth knowing before you write error-handling code against either one.
وقتی یک فیلد الزامی وجود نداشته باشد یا نامعتبر باشد، تمام سرویسها همین ساختار یکسان را برمیگردانند — متن title و detail در کل برنامه ثابت است و بسته به سرویس تغییر نمیکند. برای اینکه کدام فیلد و چرا خطا داشته، شیء errors را بررسی کنید.
{
"title": "Invalid ORS payload",
"status": 400,
"detail": "One or more required fields are missing or invalid.",
"instance": "/Tickets/reserverTemporarily",
"errors": {
"tripCode": ["The tripCode field is required."]
}
}خطاهایی مانند کمبود موجودی، صندلی از قبل رزروشده یا کد بلیت نامعتبر اصلاً از ساختار Problem Details استفاده نمیکنند — اینها با کد ۴۰۰ و یک بدنه متنی ساده (یک رشته خام JSON، نه یک شیء) و همیشه با حروف بزرگ انگلیسی بازگردانده میشوند. آن را بهعنوان متن پردازش کنید، نه Problem Details.
"CAN NOT SUBMIT TICKET: ACCOUNT BALANCE NOT ENOUGH."