Apollo-link-rest: خطأ عند تشغيل طفرة بدون أي طلب نص

تم إنشاؤها على ٢٨ سبتمبر ٢٠١٨  ·  5تعليقات  ·  مصدر: apollographql/apollo-link-rest

يبدو أنه لا يمكنك إجراء طلب PATCH أو POST بدون إدخال؟

الخطأ: Error: [GraphQL mutation using a REST call without a body]. No input was detected. Pass bodyKey, or bodyBuilder to the @rest() directive to resolve this.

طفره:

mutation extendTrial($orgSlug: String!) {
  extendTrialResult(orgSlug: $orgSlug) @rest(
    type: "Org",
    path: "/orgs/{args.orgSlug}/extend_trial/",
    method: "PATCH",
    bodySerializer: "text"
  )
}

خيارات أبولو:

bodySerializers: {
  text: (data, headers) => {
    headers.set('Content-Type', 'text/plain');
    return { body: data, headers };
  }
}

التعليق الأكثر فائدة

في الواقع بالنسبة لي ، لم يعمل input: null ، لكن هذا نجح:

mutation extendTrial($orgSlug: String!) {
  extendTrialResult(orgSlug: $orgSlug, input: {}) @rest(
    type: "Org",
    path: "/orgs/{args.orgSlug}/extend_trial/",
    method: "PATCH",
    bodySerializer: "text"
  )
}

ال 5 كومينتر

أعتقد أنه يمكنك القيام بذلك:

mutation extendTrial($orgSlug: String!) {
  extendTrialResult(orgSlug: $orgSlug, input: null) @rest(
    type: "Org",
    path: "/orgs/{args.orgSlug}/extend_trial/",
    method: "PATCH",
    bodySerializer: "text"
  )
}

في الواقع بالنسبة لي ، لم يعمل input: null ، لكن هذا نجح:

mutation extendTrial($orgSlug: String!) {
  extendTrialResult(orgSlug: $orgSlug, input: {}) @rest(
    type: "Org",
    path: "/orgs/{args.orgSlug}/extend_trial/",
    method: "PATCH",
    bodySerializer: "text"
  )
}

أليس هذا فظيعًا من الناحية الموضوعية؟ هل هناك طريقة للتغلب على هذا الآن؟ الوثائق تقول:

عند إجراء طلب POST أو PUT HTTP ، غالبًا ما تحتاج إلى تقديم نص طلب. حسب الاصطلاح ، توصي GraphQL بتسمية أنواع المدخلات الخاصة بك كمدخلات ، لذلك سنبحث افتراضيًا عن كائن JSON لجسمك.

ألا يبدو هذا وكأننا ندرك حقيقة أنك لا تحتاج دائمًا إلى جسد؟

أتحدث بصفتي كاتب هذا الخط الوثائقي ، نعم ، أنا على علم. لم يكن هذا مجرد أولوية عالية لحالات الاستخدام الخاصة بي.

@ d9001 إذا نظرت إلى حل @ Laruxo ، يمكنك أن ترى أن كل ما عليك فعله هو إضافة بضعة أحرف لتجاوز هذا القيد. إذا كنت تريد المساهمة في رمز لهذه الميزة ، فسيسعدني مساعدتك في مراجعتها.

نعم ، ليس الأمر أنني لم أتمكن من تشغيله. لقد دفعني ذلك للتو إلى معرفة سبب المشكلة ، والحل هو kinda meh كما ورد في طلبات السحب الخاصة بي حيث طلب مني الجميع إزالة الكائن غير المستخدم: |

سألقي نظرة على ما يتطلبه الأمر لإزالة هذا المطلب.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات