يعمل مفتاح الاختبار في بيئة الاختبار. تمر طلباتك عبر البوابة نفسها كما مع المفتاح الفعلي: المفتاح، والنطاقات، والحدود، وIdempotency-Key، والتحقق من الطلب، والمهام، والملفات، وwebhooks تعمل كما في الإنتاج. تُحاكى فقط العملية نفسها: لا تعمل أي أداة، ولا يُنشأ شيء، ولا يُخصم شيء.
الحصول على مفتاح اختبار
في لوحة التحكم افتح API → المفاتيح، واختر نوع المفتاح تجريبي وأنشئ المفتاح. يبدأ مفتاح الاختبار بـ gsk_test. استخدمه تماما مثل المفتاح الفعلي.
يحمل كل رد من بيئة الاختبار الترويسة Grem-Sandbox: true، فلا يُخلط سجل الاختبار أبدا بعمل حقيقي، بما في ذلك الردود الصادرة قبل فحص المفتاح (JSON تالف، 413، مسار غير معروف).
ماذا يحدث
- التحقق من الطلب حقيقي. الطلب الذي يرفضه الإنتاج ترفضه بيئة الاختبار بالحالة والسبب نفسيهما: حقل ناقص، أو أقل من 4 صور في حزمة المحتوى، أو نصوص دون عقار أو وصف أو مدينة أو مساحة. وتُفحص أيضا حقول النموذج في طلبات
multipart، وحقول التقرير من فئة أخرى، وقيمheatingTypeللمنزل، وكذلك الملفات المرفوعة: نوعها وحجمها. وما يقصّه الإنتاج أو يستبدله (نص طويل، أو قيمةlengthغير معروفة للفيديو) تقبله بيئة الاختبار أيضا. - النتائج نماذج. تجيب الأدوات المتزامنة فورا بقيم نموذجية ثابتة. وتعيد الأدوات غير المتزامنة
jobId، وتمر المهمة بالمراحلpending→running→ النتيجة خلال نحو 5 ثوان. - مراجعة التقرير تتوقف عند
action_requiredمع بيانات نموذجية فيextractedكما في الإنتاج؛ أكّدها عبرPOST /valuation/review/jobs/{id}/confirm. - الملفات بدائل مؤقتة. ملفات PDF والصور حقيقية ويمكن فتحها؛ أما الفيديو وdocx والنصوص فبدائل قصيرة موسومة بنوع المحتوى الصحيح. الملف موجود فقط لمهمة مكتملة في بيئة الاختبار، على مسار أداتها ومع معرّف عنصر أعادته المهمة، وإلا فالرد
404. ويُقدَّم فيديو الأفاتار بأي معرّف عنصر لمهمة مكتملة، كما في الإنتاج. ويعملRange(206،416). - Webhooks حقيقية. مفتاح الاختبار ينشئ ويدير عناوين webhook الخاصة ببيئة الاختبار فقط. وهذه لا تتلقى إلا أحداث مهام بيئة الاختبار: تسليمات موقعة مع إعادة المحاولات، تماما كما في الإنتاج. العناوين الفعلية لا تتلقى أحداث بيئة الاختبار أبدا، ولا يستطيع مفتاح الاختبار رؤيتها أو تغييرها.
اختيار النتيجة
تحدد الترويسة Grem-Simulate بماذا ينتهي الاستدعاء أو المهمة:
| القيمة | النتيجة |
|---|---|
completed | الافتراضي: تنتهي المهمة بنجاح |
failed | تنتهي المهمة بـ failed؛ وتجيب الأداة المتزامنة بـ 502 provider_error |
partial | تنتهي حزمة المحتوى بـ partial؛ وتنتهي الأدوات الأخرى بنجاح |
insufficient_funds | 402 مع code: INSUFFICIENT_FUNDS |
service_unavailable | الأداة متوقفة: الرد نفسه في بيئة العمل لأداة يُظهرها GET /tools/status غير متاحة - 503، Retry-After: 60، ولا يُنشأ شيء (content/generate, text/generate, video/create, avatar/video, site/create, floorplan/create, photo/enhance, valuation/express)؛ باقي الأدوات - 503 مع Retry-After: 30 |
provider_error | 502 provider_error |
لا يهم حجم الأحرف في القيمة. القيمة غير المعروفة تعيد 400، فلا يمر خطأ إملائي أبدا كنجاح. المفاتيح الفعلية تتجاهل هذه الترويسة.
curl -X POST https://developers.grem.capital/api/v1/text/generate \
-H "Authorization: Bearer gsk_test_xxx" \
-H "Content-Type: application/json" \
-H "Grem-Simulate: failed" \
-d '{"city":"Berlin","totalArea":64}'
ما يستطيعه مفتاح الاختبار
| الطلب | مع مفتاح الاختبار |
|---|---|
الأدوات، وPOST /valuation/express، وتأكيد مراجعة التقرير | محاكاة |
| إدارة webhooks | عناوين بيئة الاختبار فقط |
القراءة (GET): العقارات، والعملاء المحتملون، والقواميس، والأصوات وغيرها | بيانات حقيقية من حسابك |
| إنشاء العقارات أو العملاء المحتملين أو أحداث Swipe Match أو الرفع أو المحادثة أو تعديلها | مرفوض: 403 forbidden |
الفروق عن الإنتاج
- النتائج نماذج ثابتة، وليست تقييما أو نصوصا حقيقية. لا تعرضها على مستخدميك.
- لا تتحقق بيئة الاختبار من أن العقار في
objectIdموجود ويخصك؛ أما الإنتاج فيجيب في هذه الحالة بـ403أو404. - تُحفظ المهام والنتائج يوما واحدا.