# تمرین قرارداد و رفتار API

نیاز: Python 3.10+ با کتابخانهٔ استاندارد. فرمان‌ها را در همین پوشه اجرا کنید.

```bash
python pipeline_demo.py
python generate_openapi.py implementation.baseline.json openapi.rebuilt.json
python run_checks.py --inventory
python run_checks.py --template fixtures/error_as_200.json submission.json --as-of 2026-09-12
python run_checks.py --check fixtures/error_as_200.json submission.json
```

میان دو فرمان آخر، تصمیم، همهٔ مسئله‌های نوع‌دار، pointer، استدلال، تعمیر و محرک بازبینی را تکمیل کنید. STRUCTURE_PASS_SEMANTICS_UNREVIEWED فقط شکل و اتصال را تأیید می‌کند. فایل خروجی موجود بازنویسی نمی‌شود؛ برای تکرار نام تازه انتخاب کنید.

policy.json قواعد را می‌دهد و contracts.json درخواست و انتظار قابل‌مشاهده را. جدول کامل، نگاشت فیلد، منابع و ارزیابی در resources هستند. baseline و authorization_removed حل‌شده، error_as_200 هدایت‌شده و transfer_patch مستقل‌اند. باقی تغییرها تمرین تشخیص‌اند. حکم نهایی انتقال را خودتان بسازید؛ ورودی‌ها را حفظ کنید.

pipeline_demo واقعاً مدل پایتون را اجرا می‌کند؛ نه ASP.NET، نه پورت HTTP و نه اعتبارسنجی توکن واقعی. با --fixture و --case نام فایل و حالت هدف را انتخاب کنید. metadata غلط واقعاً رفتار مدل را تغییر می‌دهد. capture قدیمیِ fixture را با اجرای تازه یکی ندانید. Timeout تزریق‌شده، اندازه‌گیری deadline واقعی ۱۰۰ میلی‌ثانیه نیست؛ سرویس پس‌زمینه اجرا نشده است. aspnetcore_reference.cs قطعه‌های پروژه‌ای جداست، نه پروژهٔ قابل build. تاریخ نمونه تاریخی است؛ برای ادعای روز، تاریخ واقعی و وضعیت منقضی را حفظ کنید.
