رفتن به محتوای اصلی

کلاینت Kotlin

SDK تولیدشدهٔ Kotlin فقط لایهٔ HTTP و DTO است: مسیرها در apis/، مدل‌ها در models/ و زیرساخت Ktor در infrastructure/. نشست، outbox و cursor جزو SDK نیستند و در لایهٔ دادهٔ اندروید مدیریت می‌شوند.

خروجی در apps/mobile/core/network/src/commonMain/kotlin/ir/taghvimam/api/ قرار دارد.

بازتولید​

فایل تولیدشده را دستی ویرایش نکنید. هر تغییر قرارداد از packages/contracts/src/ شروع می‌شود. برای بازتولید، با Node 22 و pnpm مخزن و JDK 21 از ریشهٔ repo:

pnpm install --frozen-lockfile
export JAVA_HOME=$(/usr/libexec/java_home -v 21) # در macOS؛ در Linux مسیر JDK 21 را بگذارید
./scripts/gen-kotlin-client.sh

اسکریپت زنجیرهٔ contracts → OpenAPI → Kotlin multiplatform را اجرا و اصلاح‌های لازم serializer را اعمال می‌کند. نسخه‌ها عمداً قفلند: CLI نسخهٔ 2.20.2 در package.json و generator نسخهٔ 7.25.0 در openapitools.json؛ npx …@latest جایگزین آن‌ها نیست. CI در kotlin-client.yml اختلاف OpenAPI/SDK با خروجی بازتولید را رد می‌کند.

استفاده​

متدهای واقعی مسیرهای sync در apis/SyncApi.kt: getSyncChanges، postSyncPush، getSyncConflicts و postSyncConflictsByIdResolve — همه با خروجی HttpResponse<…>.

برای نحوهٔ فراخوانی، transport موجود در core/data/…/sync/SyncTransport.kt را الگو بگیرید؛ قواعد payload، نسخه‌ها و سرصفحهٔ پروتکل در همگام‌سازی آمده است. توجه: موفق کامپایل SDK به‌تنهایی سازگاری رفتاری با سرور را ثابت نمی‌کند — سناریوی واقعی را با API آزمایشی اجرا کنید.