مرجع API · التشخيص
فحص توقيعك
POST
/v1/diagnostics/signatureالفحص الذاتي للتوقيع: يمرّر استدعاءك عبر كل فحوص أنيس ويعرض بالضبط ما رأته أنيس — الطريقة والعنوان والمسار والاستعلام التي وقّعت عليها، والمفتاح الذي وجدته، والصلاحيات السارية. لا يغيّر شيئًا. يرسل {} بالضبط.
الصلاحية
diagnostics:useالمصادقةتغيير موقَّع
ردّ أنيسموقَّع
حدود الموظفين التي يُحتسب ضمنهاكل الاستدعاءات
حزمة SDK لـ .NET
anis.Diagnostics.CheckSignatureAsync()- هو الاستدعاء الأول الصحيح حين لا يُتحقق من توقيع.
الاستدعاء
موقَّع بمفتاحك، مع رقم استخدام لمرة واحدة (nonce) وبصمة للمحتوى.
الترويسات: Signature-Input، Signature، Content-Digest، Nonce، X-Anis-Date. تضبطها حزم SDK كلها نيابةً عنك.
المحتوى: البايتان {} بالضبط — لا شيء غيرهما.
الردود
| الحالة | المعنى | المحتوى |
|---|---|---|
| 200 | نجاح. | SignatureDiagnostic |
| 400 | مرفوض: الاستدعاء الموقّع غير سليم البنية. | مشكلة |
| 401 | مرفوض: لم تتم المصادقة. | مشكلة |
| 403 | مرفوض: غير مسموح. | مشكلة |
| 409 | مرفوض: يتعارض مع الحالة الحالية. | مشكلة |
| 422 | مرفوض: الاستدعاء يخالف قاعدة. | مشكلة |
| 429 | مرفوض: بلغتَ حدًا. | مشكلة |
كل ردّ على هذا الاستدعاء موقَّع من أنيس — النجاح وكل رفض. اشترط وجود التوقيع وتحقّق منه قبل أن تتصرف بناءً على الردّ؛ والردّ بلا توقيع فشل، لا يُعدّ ردًّا (كيف).
حالات الرفض
كل رفض لهذا الاستدعاء مشكلةٌ موقَّعة. ابنِ منطقك على رمزها code؛ وكلٌّ منها يرتبط بصفحة تشرح معناه وما عليك فعله.
| الخطأ | الرمز | الحالة |
|---|---|---|
| بيانات اعتماد غير صالحة | invalid_credentials | 401 |
| استدعاء موقّع غير سليم البنية | malformed_signed_request | 400 |
| صلاحية غير كافية | insufficient_scope | 403 |
| عنوان المصدر غير مسموح | source_ip_not_allowed | 403 |
| تجاوزت حدّ الاستدعاءات | rate_limited | 429 |
| اكتُشف تكرار | replay_detected | 409 |
| فشل التحقق | validation_failed | 422 |
| خطأ داخلي | internal_error | 500 |
| انتهت مهلة الاستدعاء | request_timeout | 504 |
الأنواع
SignatureDiagnostic
| الحقل | النوع | ملاحظات |
|---|---|---|
routeIdموجود دائمًا | string | المسار الذي طابقت أنيس استدعاءك معه. |
methodموجود دائمًا | string | الطريقة (method) كما رأتها أنيس. |
authorityموجود دائمًا | string | المضيف (والمنفذ إن لم يكن الافتراضي) كما رأته أنيس — بأحرف صغيرة. |
pathموجود دائمًا | string | المسار كما رأته أنيس. |
canonicalQueryموجود دائمًا | string | الاستعلام كما رأته أنيس، دون علامة ? في أوله. |
requestKindموجود دائمًا | string | كيف تتوقع أنيس أن يُوقَّع هذا المسار. القيم: safeRead, bodylessNonceMutation, orderMutation, enrollmentToken, public |
requiredScopeموجود دائمًا | string | الصلاحية التي يحتاجها هذا المسار. |
coveredComponentsموجود دائمًا | list of string | الأجزاء الموقَّعة التي يتطلبها هذا المسار، بالترتيب. |
keyIdموجود دائمًا | UUID | معرّف المفتاح الذي وجدت أنيس توقيعك تحته. |
partnerIdموجود دائمًا | UUID | الشريك الذي يتبع له ذلك المفتاح. |
applicationIdموجود دائمًا | UUID | التطبيق الذي يتبع له ذلك المفتاح. |
policyVersionموجود دائمًا | integer | إصدار صلاحيات تطبيقك الذي طُبِّق. يزيد كلما غيّرها موظفو أنيس. |
effectiveScopesموجود دائمًا | list of string | الصلاحيات السارية على هذا الاستدعاء. |
receivedAtموجود دائمًا | string (date-time) | وقت تلقّي أنيس للاستدعاء. |