ATP - افزودن پیام (POST /api/v1/conversations/{conversation_id}/messages/)
Endpoint
POST /api/v1/conversations/{conversation_id}/messages/
هدف آزمون
افزودن پیام کاربر و شروع turn جدید assistant.
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- هدر Authorization با access token معتبر
فرآیند آزمون
- GET conversation detail
- POST message با content
- اتصال stream با turn_id جدید
- دریافت پاسخ کامل assistant
معرفی ویژگی
این endpoint عملیات «افزودن پیام» را در API Patent Genie انجام میدهد.
- ورودی معتبر: اعتبارسنجی در مرز API
- پاسخ استاندارد: قالب JSON یکسان با سایر endpointها
- کنترل دسترسی: مطابق policy ماژول مربوطه
سناریوی آزمون
سناریو 1: مسیر موفق
- ارسال
POST /api/v1/conversations/{conversation_id}/messages/ - دریافت پاسخ موفق
- بررسی ساختار پاسخ
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: خطا — بدون احراز هویت
- ارسال درخواست بدون هدر Authorization
- دریافت کد 401
- بررسی عدم برگرداندن داده محافظتشده
سناریو 4: خطا — منبع یافت نشد
- استفاده از UUID نامعتبر یا متعلق به کاربر دیگر
- دریافت کد 404
- بررسی پیام خطای استاندارد API
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| content | Body | string | بله | متن پیام |
| file_ids | Body | uuid[] | خیر | پیوستها |
| conversation_id | Path | uuid | بله | شناسه گفتگو |
Swagger
post:
summary: افزودن پیام
responses:
201:
description: منبع ایجاد شد
400:
description: داده ورودی نامعتبر
401:
description: احراز هویت نامعتبر
نمونه ورودی
curl -X POST "http://localhost:8000/api/v1/conversations/{conversation_id}/messages/" \
-H "Authorization: Bearer <access>" \
-H "Content-Type: application/json"
نمونه خروجی
{
"success": true,
"data": {
"turn_id": 3,
"stream_url": "/api/v1/conversations/.../stream/?turn_id=3",
"conversation": { "turns": [ "..."] }
}
}
Status Codes
- 202: پیام پذیرفته شد
- 400: validation
- 429: rate limit
نتیجه مورد انتظار
در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای POST برگردانده میشود.
روال صحتسنجی
- بررسی کد وضعیت HTTP
- بررسی فیلد success در بدنه
- بررسی عدم افشای داده حساس
توضیحات
- مسیر باید با پیادهسازی فعلی urls.py همخوان باشد