GraphQL Cookbook
การสร้างวัตถุ
8 นาที
การสร้างวัตถุผ่าน parse graphql api ปัญหา คุณต้องการสร้างวัตถุใหม่ในฐานข้อมูลของคุณผ่าน parse graphql api วิธีแก้ปัญหา โดยใช้ parse graphql มีสองวิธีที่แตกต่างกันในการสร้างวัตถุใหม่ในฐานข้อมูลของคุณ การใช้การเปลี่ยนแปลงทั่วไป https //www back4app com/docs/parse graphql/graphql mutation create object#mutation generic นี่คือการเปลี่ยนแปลงที่คุณต้องใช้หากคุณยังไม่ได้สร้างคลาสของวัตถุของคุณ การใช้การเปลี่ยนแปลงคลาส https //www back4app com/docs/parse graphql/graphql mutation create object#mutation class นี่คือการเปลี่ยนแปลงที่แนะนำหากคุณได้สร้างคลาสของวัตถุของคุณแล้ว ข้อมูลเวอร์ชัน ขึ้นอยู่กับเวอร์ชันของ parse ที่คุณเลือกใช้งาน คำสั่ง graphql, การเปลี่ยนแปลง และผลลัพธ์จะมีความแตกต่างกันเล็กน้อย กรุณาเลือกตัวอย่างที่ถูกต้องพร้อมกับเวอร์ชัน parse ที่คุณกำลังใช้งาน การใช้การเปลี่ยนแปลงทั่วไป เมื่อคุณใช้การเปลี่ยนแปลง create create แบบทั่วไป parse server จะทำตัวเหมือนฐานข้อมูลที่ไม่มีสคีมา ซึ่งหมายความว่าคุณไม่จำเป็นต้องกำหนดคลาสของวัตถุในสคีมาของแอปพลิเคชันของคุณล่วงหน้า คุณเพียงแค่ต้องส่งข้อมูลของวัตถุของคุณ และ parse server จะไม่เพียงแต่เก็บข้อมูลนั้น แต่ยังเรียนรู้จากมัน และสร้างคลาสใหม่ในสคีมาของแอปพลิเคชันของคุณโดยอัตโนมัติ ดังนั้น การเปลี่ยนแปลง create create แบบทั่วไปจึงเป็นวิธีที่คุณต้องใช้ในการสร้างวัตถุใหม่หากคุณยังไม่ได้สร้างคลาสของวัตถุของคุณ คุณยังสามารถใช้การเปลี่ยนแปลงนี้ในการสร้างวัตถุของคลาสที่มีอยู่แล้ว แต่สำหรับกรณีเหล่านี้ เราขอแนะนำให้ใช้ การเปลี่ยนแปลงคลาส https //www back4app com/docs/parse graphql/graphql mutation create object#mutation class คลาส request #in parse 3 10 0 and later you must first create the class itself 1 mutation createclass { 2 createclass(input { 3 name "hero" 4 schemafields { 5 addstrings \[{name "name"}] 6 addnumbers \[{name "height"}] 7 } 8 }){ 9 class{ 10 schemafields{ 11 name 12 typename 13 } 14 } 15 } 16 } response 1 { 2 "data" { 3 "createclass" { 4 "class" { 5 "schemafields" \[ 6 { 7 "name" "objectid", 8 " typename" "schemastringfield" 9 }, 10 { 11 "name" "updatedat", 12 " typename" "schemadatefield" 13 }, 14 { 15 "name" "createdat", 16 " typename" "schemadatefield" 17 }, 18 { 19 "name" "name", 20 " typename" "schemastringfield" 21 }, 22 { 23 "name" "height", 24 " typename" "schemanumberfield" 25 }, 26 { 27 "name" "acl", 28 " typename" "schemaaclfield" 29 } 30 ] 31 } 32 } 33 } 34 } วัตถุ request 1 mutation createobject{ 2 createhero(input {fields {name "luke skywalker"}}){ 3 hero{ 4 id 5 name 6 } 7 } 8 } response 1 { 2 "data" { 3 "createhero" { 4 "hero" { 5 "id" "sgvybzo5qjfpmufxcxn1", 6 "name" "luke skywalker" 7 } 8 } 9 } 10 } การใช้การเปลี่ยนแปลงคลาส เมื่อคุณได้สร้างคลาสของวัตถุในสคีมาของแอปพลิเคชันของคุณแล้ว (เช่น การใช้ การเปลี่ยนแปลงทั่วไป https //www back4app com/docs/parse graphql/graphql mutation create object#mutation generic ) parse server จะเพิ่มการเปลี่ยนแปลงใหม่ create\<classname> create\<classname> เพื่อสร้างวัตถุใหม่ของคลาสนี้โดยอัตโนมัติ ดังนั้น การเปลี่ยนแปลงคลาสของวัตถุจึงเป็นวิธีที่แนะนำในการสร้างวัตถุใหม่หากคุณได้สร้างคลาสของวัตถุแล้ว เนื่องจากการเปลี่ยนแปลงนี้รู้ข้อมูลของคลาสของคุณ มันจะทำให้คุณสามารถใช้ฟีเจอร์เพิ่มเติมเช่น การเติมโค้ดอัตโนมัติและการตรวจสอบความถูกต้องได้โดยอัตโนมัติ คุณยังไม่จำเป็นต้องระบุประเภทข้อมูลเมื่อส่งวันที่, พอยเตอร์, ความสัมพันธ์, ไฟล์, จุดภูมิศาสตร์, รูปหลายเหลี่ยม, หรือไบต์ผ่านการเปลี่ยนแปลงการสร้างคลาส ตัวอย่างนี้จะทำงานได้ก็ต่อเมื่อคุณได้สร้างคลาสของวัตถุแล้ว คุณสามารถสร้างคลาสได้โดยใช้ การเปลี่ยนแปลงทั่วไป request 1 mutation createobject{ 2 createhero(input {fields {name "r2 d2"}}){ 3 hero{ 4 id 5 createdat 6 } 7 } 8 } response #notice the id property refers to the global id in the relay specification, not to confuse with the objectid from parse 1 { 2 "data" { 3 "createhero" { 4 "hero" { 5 "id" "sgvybzpvrm5tvdm1ynbp", 6 "createdat" "2020 02 06t13 13 26 678z" 7 } 8 } 9 } 10 } เวอร์ชันเซิร์ฟเวอร์ parse ที่เก่ากว่า parse server 3 9 0 การกลายพันธุ์ทั่วไป คลาส คำขอ #ใน parse 3 9 0 คุณต้องสร้างคลาสเองก่อน 1 mutation createclass { 2 createclass( 3 name "hero" 4 schemafields { 5 addstrings \[{name "name"}] 6 addnumbers \[{name "height"}] 7 }){ 8 schemafields{ 9 name 10 typename 11 } 12 } 13 } การตอบกลับ 1 { 2 "data" { 3 "createclass" { 4 "schemafields" \[ 5 { 6 "name" "objectid", 7 " typename" "schemastringfield" 8 }, 9 { 10 "name" "updatedat", 11 " typename" "schemadatefield" 12 }, 13 { 14 "name" "createdat", 15 " typename" "schemadatefield" 16 }, 17 { 18 "name" "name", 19 " typename" "schemastringfield" 20 }, 21 { 22 "name" "height", 23 " typename" "schemanumberfield" 24 }, 25 { 26 "name" "acl", 27 " typename" "schemaaclfield" 28 } 29 ] 30 } 31 } 32 } วัตถุ คำขอ #และจากนั้นสร้างวัตถุ \#ใน parse 3 9 0 คุณต้องสร้างคลาสเองก่อน 1 mutation createobject{ 2 createhero(fields { 3 name "luke skywalker" 4 }){ 5 id 6 createdat 7 } 8 } การตอบกลับ 1 { 2 "data" { 3 "createhero" { 4 "id" "ckhurmmjzw", 5 "createdat" "2019 11 04t12 37 22 462z" 6 } 7 } 8 } การกลายพันธุ์คลาส parse server 3 9 0 1 mutation createobject{ 2 createhero(fields { 3 name "r2 d2" 4 }){ 5 id 6 createdat 7 } 8 } ผลลัพธ์ parse 3 9 0 1 { 2 "data" { 3 "createhero" { 4 "id" "n5grpei0il", 5 "createdat" "2019 11 04t12 45 00 882z" 6 } 7 } 8 } parse server 3 8 0 การเปลี่ยนแปลงทั่วไป parse server 3 8 0 1 mutation createobject { 2 create(classname "hero" fields { 3 name "luke skywalker" 4 }){ 5 objectid 6 createdat 7 } 8 } ผลลัพธ์ parse 3 8 0 1 { 2 "data" { 3 "objects" { 4 "create" { 5 "objectid" "ffyobotk85", 6 "createdat" "2019 07 15t01 25 20 875z" 7 } 8 } 9 } 10 } การเปลี่ยนแปลงคลาส parse server 3 8 0 1 mutation createhero { 2 createhero(fields { name "r2 d2" }) { 3 objectid, 4 createdat 5 } 6 } ผลลัพธ์ parse 3 8 0 1 { 2 "data" { 3 "createhero" { 4 "objectid" "tuecddcgno", 5 "createdat" "2019 11 04t12 44 10 951z" 6 } 7 } 8 } parse server 3 7 2 การเปลี่ยนแปลงทั่วไป parse server 3 7 2 1 mutation createobject { 2 objects { 3 create(classname "hero", fields { name "luke skywalker" }) { 4 objectid, 5 createdat 6 } 7 } 8 } ผลลัพธ์ parse 3 7 2 1 { 2 "data" { 3 "objects" { 4 "create" { 5 "objectid" "kr9aqnzfui", 6 "createdat" "2019 07 15t01 25 20 875z" 7 } 8 } 9 } 10 } การเปลี่ยนแปลงคลาส parse server 3 7 2 1 mutation createhero { 2 objects { 3 createhero(fields { name "r2 d2" }) { 4 objectid, 5 createdat 6 } 7 } 8 } ผลลัพธ์ parse 3 7 2 1 { 2 "data" { 3 "objects" { 4 "createhero" { 5 "objectid" "jjh0aqqjfs", 6 "createdat" "2019 07 15t02 22 04 982z" 7 } 8 } 9 } 10 }