GraphQL Cookbook
オブジェクトの作成
8 分
parse graphql apiを通じてオブジェクトを作成する 問題 parse graphql apiを通じてデータベースに新しいオブジェクトを作成したい。 解決策 parse graphqlを使用すると、データベースに新しいオブジェクトを作成するための2つの異なる方法があります。 一般的なミューテーションを使用する 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はそれを保存するだけでなく、学習し、アプリケーションのスキーマに新しいクラスを自動的に作成します。 したがって、オブジェクトの 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は即座にgraphql apiに新しい 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 ミューテーション 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 ミューテーション createobject{ 2 createhero(fields { 3 name "ルーク・スカイウォーカー" 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 ミューテーション 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 }