Score:1

จะส่งแบบฟอร์มติดต่อผ่าน JSON:API ได้อย่างไร

ธง cn

ข้อกำหนดในการส่งแบบฟอร์มติดต่อโดยใช้ JSON:API มีอะไรบ้าง

ฉันเปิดใช้งานโมดูลผู้ติดต่อหลักและตั้งค่าแบบฟอร์มการติดต่อทั่วทั้งไซต์แบบกำหนดเอง ฉันอนุญาตให้ผู้ใช้ anon + auth ส่งแบบฟอร์ม

ต่อไป ฉันเปิดใช้งาน JSON:API ฉันสามารถดูแบบฟอร์มการติดต่อได้ที่ /jsonapi/contact_form/contact_form:

"ข้อมูล":[
   {
      "ประเภท":"contact_form--contact_form",
      "รหัส":"d97e73f1-7d06-4bf0-b05b-1c654a659dfc",
      "ลิงก์":{
         "ตัวเอง":{
            "href":"https://example.lndo.site/jsonapi/contact_form/contact_form/d97e73f1-7d06-4bf0-b05b-1c654a659dfc"
         }
      },
      "langcode":"ใช่",
      "สถานะ":จริง
      "การพึ่งพา":[
         
      ]
      "drupal_internal__id":"example_support",
      "label":"ตัวอย่างการสนับสนุน",
      "ผู้รับ":[
         "[email protected]"
      ]
      "ตอบ":"",
      "น้ำหนัก":0,
      "ข้อความ":"ขอบคุณสำหรับการส่ง",
      "เปลี่ยนเส้นทาง":""
   }
]

แต่ปลายทางใดที่ฉันต้องโพสต์เพื่อส่งแบบฟอร์มนี้

ฉันพบ ปัญหานี้เกี่ยวกับการไม่ส่งอีเมลเมื่อมีการส่งแบบฟอร์มการติดต่อผ่าน REST.

ประเด็นดังกล่าวชี้ให้เห็นว่า /เอนทิตี/contact_message ต้องเปิดใช้งานจุดสิ้นสุด REST เพื่อส่งแบบฟอร์มการติดต่อ - สิ่งนี้เป็นจริงสำหรับ JSON:API หรือไม่

ฉันสับสนเพราะใช้ JSON:API ฉันสามารถส่งโหนดโดยไม่ต้องเปิดใช้งานจุดสิ้นสุด REST โดยโพสต์ไปที่ /jsonapi/node/content_type.

Alireza Tabatabaeian avatar
cn flag
json api ไม่ได้ขึ้นอยู่กับจุดสิ้นสุดส่วนที่เหลือ สำหรับเกือบทุกสถานการณ์ที่ส่งคำขอโพสต์ไปยัง `Entity_type/Bundle` จะทำให้เกิดการสร้างเอนทิตีใหม่ของบันเดิลนั้น ดังนั้นหากไม่ได้ผล อาจเกี่ยวข้องกับโมดูล json api แต่ฉัน คิดว่าการเปิดใช้งานตำแหน่งข้อมูลที่เหลือไม่ควรช่วยในสถานการณ์นี้
Score:1
ธง cn

ดูเหมือนว่าจำเป็นต้องมีจุดสิ้นสุด REST ในกรณีนี้ เนื่องจากแม้ว่าแบบฟอร์มการติดต่อจะเป็นเอนทิตี แต่การส่งแบบฟอร์มการติดต่อจะไม่ใช่เอนทิตี เว้นแต่คุณจะใช้ ติดต่อที่เก็บ โมดูล.

อย่างไรก็ตามกำหนดให้ ปัญหาหลักที่ไม่ได้ส่งการแจ้งเตือน และ ปัญหา RTBC และ "ต้องการการตรวจสอบ" จำนวนมากในคิวปัญหาที่เก็บข้อมูลที่ติดต่อ เมื่อวันที่ 30 มกราคม 2022 ฉันตัดสินใจใช้วิธีอื่น หากผู้ใช้อารมณ์เสียและติดต่อขอความช่วยเหลือ เป็นเรื่องที่แย่มากหากมีข้อบกพร่องที่ทำให้การส่งหายไปหรือการตอบกลับล่าช้า

ดังนั้นฉันจึงแก้ไขสิ่งนี้โดยใช้ เว็บฟอร์ม REST โมดูล:

  1. ติดตั้งโมดูล
  2. เปิดใช้งาน ส่งเว็บฟอร์ม ทรัพยากร REST โดยใช้โมดูล REST UI
  3. สร้างเว็บฟอร์ม
  4. เพิ่มโค้ดไปยังแอปส่วนหน้าเพื่อส่งแบบฟอร์ม

ฉันทำงานนี้เสร็จในเวลาประมาณหนึ่งชั่วโมง และการเปลี่ยนแปลงเพิ่มเติมเพียงอย่างเดียวที่ฉันต้องทำจนถึงตอนนี้ก็คือ แก้ไข Webform REST เพื่อให้ฉันสามารถถอนการติดตั้ง REST UI หลังจากเปิดใช้งานจุดสิ้นสุด.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา