حدث أمر غريب عند إنشاء مستخدم عبر واجهة برمجة التطبيقات

عند اختبار ملف API users.json، أستخدم Postman لإنشاء مستخدم، ويعمل الأمر بنجاح، ويتم تفعيله افتراضيًا، مما يعني أن active=true يعمل.

لكن عند إنشاء مستخدم باستخدام كود في Node.js، مع نفس المعاملات، لا يعمل active=true بعد الآن، رغم أنني أحصل على رسالة نجاح تقول:

success: true,
active: false

كيف يحدث ذلك؟ أنا لا أرى حتى هذا الأمر في الخلفية.

أظن أن كود Node.js الخاص بك لا يمرر مفتاح API بشكل صحيح، وبالتالي لا يُسمح لك بتجاوز معامل active. إذا أمكنك مشاركة جزء من الكود هنا، فقد نتمكن من المساعدة.

مرحبًا ديفيد، شكرًا لك:

إليك طلبي:

{
 "url": "users.json",
 "method": "post",
 "data": {
      "api_key": "57d06a163190ee90de1118ac2adbaf5eeb5aa93d4d02dbe8f5d424c388f126e294c",
      "api_username": "Nathan001",
      "name": "tokgood",
      "email": "tokgood@qq.com",
      "password": "64c6457d-b815-4e87-8ea1-e66becd710bc",
      "username": "2cx9pyCMyn",
      "active": true,
      "approved": true
 },
 "headers": {
      "common": {
           "Accept": "application/json, text/plain, */*"
      },
      "delete": {},
      "get": {},
      "head": {},
      "post": {
           "Content-Type": "application/x-www-form-urlencoded"
      },
      "put": {
           "Content-Type": "application/x-www-form-urlencoded"
      },
      "patch": {
           "Content-Type": "application/x-www-form-urlencoded"
      },
      "content-type": "multipart/form-data"
 },
 "baseURL": "https://www.tuntry.com/",
 "transformRequest": [
      null
 ],
 "transformResponse": [
      null
 ],
 "timeout": 60000,
 "xsrfCookieName": "XSRF-TOKEN",
 "xsrfHeaderName": "X-XSRF-TOKEN",
 "maxContentLength": -1
}

لقد قمت بمراجعة مستخدم الـ API والمفتاح مرة أخرى، وهما صحيحان.

لقد قمت بتغليف طلب POST باستخدام Axios.

   const post = (url, data) => service.post(url, {
   api_key: Config.discourse.api_key,
   api_username: Config.discourse.api_username,
  ...data,
 }
)

لا أعرف الكثير عن Node، لكن يبدو الأمر جيدًا من وجهة نظري.

يمكنك تجربة إرسال بيانات اعتماد API عبر رؤوس HTTP بدلاً من المعاملات. إرسالها عبر المعاملات أصبح قديمًا وسيؤدي إلى ظهور تحذير في لوحة الإدارة. أسماء الرؤوس هي Api-Key و Api-Username (لاحظ استخدام الشرطات وليس الشرطات السفلية). لمزيد من المعلومات، طالع هنا.

يا رجل عظيم، نعم، لقد حللت المشكلة بعد إضافة Api-Key و Api-Username وإضافة 'content-type': 'application/json', إلى الرأس!