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 版本选择正确的示例。 使用通用变更 当您使用 创建 创建 通用变更时,parse server 的行为就像一个无模式数据库。这意味着您不需要提前在应用程序的模式中定义对象的类。您只需发送对象的数据,parse server 不仅会存储它,还会从中学习,并在应用程序的模式中自动创建一个新类。 因此,如果您尚未创建对象的类,您必须使用对象的 创建 创建 通用变更来创建新对象。您也可以使用此变更来创建已存在类的对象,但对于这些情况,我们建议使用 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 会立即在您的 graphql api 中添加一个新的 create\<classname> create\<classname> 变更,以创建该类的新对象。 因此,如果您已经创建了对象的类,则对象的类变更是创建新对象的推荐方法。由于此变更知道您的类的数据,它将自动为您提供代码自动完成和验证等附加功能。您在通过类创建变更发送日期、指针、关系、文件、地理点、多边形或字节时,也无需指定数据类型。 此示例仅在您已经创建了对象的类时有效。您可以使用 https //www back4app com/docs/parse graphql/graphql mutation create object#mutation generic 创建类。 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 服务器 解析服务器 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 } 类变更 解析服务器 3 9 0 1 mutation createobject{ 2 createhero(fields { 3 name "r2 d2" 4 }){ 5 id 6 createdat 7 } 8 } 结果 解析 3 9 0 1 { 2 "data" { 3 "createhero" { 4 "id" "n5grpei0il", 5 "createdat" "2019 11 04t12 45 00 882z" 6 } 7 } 8 } 解析服务器 3 8 0 通用变更: 解析服务器 3 8 0 1 mutation createobject { 2 create(classname "hero" fields { 3 name "luke skywalker" 4 }){ 5 objectid 6 createdat 7 } 8 } 结果 解析 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 } 类变更: 解析服务器 3 8 0 1 mutation createhero { 2 createhero(fields { name "r2 d2" }) { 3 objectid, 4 createdat 5 } 6 } 结果 解析 3 8 0 1 { 2 "data" { 3 "createhero" { 4 "objectid" "tuecddcgno", 5 "createdat" "2019 11 04t12 44 10 951z" 6 } 7 } 8 } 解析服务器 3 7 2 通用变更: 解析服务器 3 7 2 1 mutation createobject { 2 objects { 3 create(classname "hero", fields { name "luke skywalker" }) { 4 objectid, 5 createdat 6 } 7 } 8 } 结果 解析 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 } 类变更: 解析服务器 3 7 2 1 mutation createhero { 2 objects { 3 createhero(fields { name "r2 d2" }) { 4 objectid, 5 createdat 6 } 7 } 8 } 结果 解析 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 }