ATP - ایجاد نسخه قالب (POST /api/v1/draft-templates/{template_id}/versions/)
Endpoint
POST /api/v1/draft-templates/{template_id}/versions/
هدف آزمون
ایجاد نسخه draft جدید از قالب.
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- هدر Authorization با access token معتبر
فرآیند آزمون
- ارسال درخواست POST به
/api/v1/draft-templates/{template_id}/versions/ - دریافت پاسخ HTTP
- بررسی کد وضعیت و بدنه JSON
معرفی ویژگی
این endpoint عملیات «ایجاد نسخه قالب» را در API Patent Genie انجام میدهد.
- ورودی معتبر: اعتبارسنجی در مرز API
- پاسخ استاندارد: قالب JSON یکسان با سایر endpointها
- کنترل دسترسی: مطابق policy ماژول مربوطه
سناریوی آزمون
سناریو 1: مسیر موفق
- ارسال
POST /api/v1/draft-templates/{template_id}/versions/ - دریافت پاسخ موفق
- بررسی ساختار پاسخ
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: خطا — بدون احراز هویت
- ارسال درخواست بدون هدر Authorization
- دریافت کد 401
- بررسی عدم برگرداندن داده محافظتشده
سناریو 4: خطا — منبع یافت نشد
- استفاده از UUID نامعتبر یا متعلق به کاربر دیگر
- دریافت کد 404
- بررسی پیام خطای استاندارد API
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| jurisdiction | Body | string | خیر | حوزه قضایی |
| language | Body | string | خیر | زبان؛ پیشفرض fa |
| change_summary | Body | string | خیر | خلاصه تغییر |
| template_id | Path | uuid | بله | شناسه قالب پیشنویس |
Swagger
post:
summary: ایجاد نسخه قالب
responses:
201:
description: منبع ایجاد شد
400:
description: داده ورودی نامعتبر
401:
description: احراز هویت نامعتبر
نمونه ورودی
curl -X POST "http://localhost:8000/api/v1/draft-templates/{template_id}/versions/" \
-H "Authorization: Bearer <access>" \
-H "Content-Type: application/json"
نمونه خروجی
{
"success": true,
"data": {}
}
Status Codes
- 201: نسخه ایجاد شد
- 400: validation
نتیجه مورد انتظار
در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای POST برگردانده میشود.
روال صحتسنجی
- بررسی کد وضعیت HTTP
- بررسی فیلد success در بدنه
- بررسی عدم افشای داده حساس
توضیحات
- مسیر باید با پیادهسازی فعلی urls.py همخوان باشد