ATP - وضعیت فعلی prior-art (GET /api/v1/invention-cases/{invention_case_id}/prior-art/)
Endpoint
GET /api/v1/invention-cases/{invention_case_id}/prior-art/
هدف آزمون
projection فعلی جستجو و گزارش prior-art برای UI.
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- هدر Authorization با access token معتبر
فرآیند آزمون
- ارسال درخواست GET به
/api/v1/invention-cases/{invention_case_id}/prior-art/ - دریافت پاسخ HTTP
- بررسی کد وضعیت و بدنه JSON
معرفی ویژگی
خلاصه وضعیت بدون خواندن artifact سنگین S3. شامل sub_state، capabilities (can_start_search، can_start_report، ...) و آخرین execution status است.
- ورودی معتبر: اعتبارسنجی در مرز API
- پاسخ استاندارد: قالب JSON یکسان با سایر endpointها
- کنترل دسترسی: مطابق policy ماژول مربوطه
سناریوی آزمون
سناریو 1: مسیر موفق
- ارسال
GET /api/v1/invention-cases/{invention_case_id}/prior-art/ - دریافت پاسخ موفق
- بررسی ساختار پاسخ
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: قبل از شروع search
- context ready ولی search نزده
- بررسی sub_state="not_started"
- بررسی can_start_search=true
سناریو 4: run stale
- snapshot جدید بعد از search قبلی
- بررسی is_stale=true
- بررسی نیاز به search مجدد
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| invention_case_id | Path | uuid | بله | شناسه پرونده اختراع |
Swagger
get:
summary: وضعیت فعلی prior-art
responses:
200:
description: عملیات موفق
401:
description: احراز هویت نامعتبر یا ناقص
نمونه ورودی
curl -X GET "http://localhost:8000/api/v1/invention-cases/{invention_case_id}/prior-art/" \
-H "Authorization: Bearer <access>" \
-H "Content-Type: application/json"
نمونه خروجی
{
"success": true,
"data": {
"prior_art": {
"sub_state": "search_complete",
"run_id": "...",
"latest_search_status": "completed",
"latest_report_status": null,
"reference_count": 18,
"capabilities": { "can_start_report": true }
},
"run": { "id": "...", "is_current": true, "context_snapshot_version": 2 }
}
}
Status Codes
- 200: عملیات موفق
- 401: احراز هویت نامعتبر یا ناقص
نتیجه مورد انتظار
در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای GET برگردانده میشود.
روال صحتسنجی
- بررسی 200
- بررسی capabilities با context readiness
- بررسی is_stale پس از snapshot جدید
توضیحات
- مسیر باید با پیادهسازی فعلی urls.py همخوان باشد