GraphQL Cookbook
物の発見
9 分
parse graphql apiを通じてオブジェクトを見つける 問題 parse graphql apiを通じてデータベースからオブジェクトを見つけたい。 解決策 parse graphqlを使用すると、データベースからオブジェクトを見つけるための2つの異なる方法があります。 一般的なクエリを使用する https //www back4app com/docs/parse graphql/graphql query find objects#query generic これは、任意のクラスのオブジェクトを見つけるために使用できるクエリです。 クラスクエリを使用する https //www back4app com/docs/parse graphql/graphql query find objects#query class これは、特定のクラスのオブジェクトを見つけるために使用すべき推奨クエリです。 バージョン情報 選択したparseのバージョンによって、graphqlクエリ、ミューテーション、および結果はわずかに異なります。 実行しているparseのバージョンに応じて正しい例を選択してください。 一般的なクエリの使用 「 find find 」一般的なクエリを使用すると、parse serverはスキーマレスデータベースのように動作します。つまり、取得したいオブジェクトのフィールドを指定する必要はありません。オブジェクトの classname classname を送信するだけで、parse serverは見つかったオブジェクトのすべてのフィールドを返します。 したがって、オブジェクトの find find 一般的なクエリは、任意のクラスのオブジェクトを見つけるために使用できるクエリです。特定のクラスのオブジェクトを見つけたい場合は、 クラスクエリ https //www back4app com/docs/parse graphql/graphql query find objects#query class を使用することをお勧めします。 この例は、既存のオブジェクトを使用する「 classname classname 」を使用する場合にのみ機能します。 オブジェクトを作成する レシピを使用してオブジェクトを作成できます。 parse server 3 8 0 request 1 query findobject { 2 find(classname "hero") { 3 count, 4 results 5 } 6 } response 1 { 2 "data" { 3 "find" { 4 "count" 2, 5 "results" \[ 6 { 7 "objectid" "rr8jmfrnks", 8 "name" "luke skywalker", 9 "createdat" "2019 11 04t12 42 40 723z", 10 "updatedat" "2019 11 04t12 42 40 723z" 11 }, 12 { 13 "objectid" "tuecddcgno", 14 "name" "r2 d2", 15 "createdat" "2019 11 04t12 44 10 951z", 16 "updatedat" "2019 11 04t12 44 10 951z" 17 } 18 ] 19 } 20 } 21 } 例 3 9 0以降: parse 3 9 0以降では、一般的なメソッドgetおよびfindはありません。オブジェクトを取得するには、以下の特定のメソッドを使用する必要があります。 クラスクエリの使用 アプリケーションのスキーマにオブジェクトのクラスをすでに作成している場合(例えば、 オブジェクトの作成 https //www back4app com/docs/parse graphql/graphql mutation create object#mutation generic レシピを使用して)、parse serverは即座にgraphql apiに新しい find\<classname> find\<classname> クエリを追加して、このクラスのオブジェクトを見つけます。 したがって、オブジェクトのクラスクエリは、特定のクラスのオブジェクトを見つけるための推奨メソッドです。このクエリはクラスのデータを知っているため、コードの自動補完や検証などの追加機能を自動的に利用できるようになります。 この例は、既存のオブジェクトのクラスクエリを使用する場合にのみ機能します。 オブジェクトの作成 レシピを使用してオブジェクトを作成できます。 parse server 3 10 0以降 request 1 query findhero { 2 heroes{ 3 count, 4 edges{ 5 node{ 6 name 7 createdat 8 updatedat 9 } 10 } 11 } 12 } response 1 { 2 "data" { 3 "heroes" { 4 "count" 3, 5 "edges" \[ 6 { 7 "node" { 8 "name" "luke skywalker", 9 "createdat" "2020 02 06t13 02 33 652z", 10 "updatedat" "2020 02 06t13 02 33 652z" 11 } 12 }, 13 { 14 "node" { 15 "name" "r2 d2", 16 "createdat" "2020 02 06t13 13 26 678z", 17 "updatedat" "2020 02 06t13 13 26 678z" 18 } 19 } 20 ] 21 } 22 } 23 } 古いparseサーバーバージョン parse 3 9 0 クラスクエリ: リクエスト 1 query findhero { 2 heroes{ 3 count, 4 results { 5 id, 6 name, 7 createdat, 8 updatedat 9 } 10 } 11 } レスポンス 1 { 2 "data" { 3 "heroes" { 4 "count" 2, 5 "results" \[ 6 { 7 "id" "ckhurmmjzw", 8 "name" "ルーク・スカイウォーカー", 9 "createdat" "2019 11 04t12 37 22 462z", 10 "updatedat" "2019 11 04t12 37 22 462z" 11 }, 12 { 13 "id" "n5grpei0il", 14 "name" "r2 d2", 15 "createdat" "2019 11 04t12 45 00 882z", 16 "updatedat" "2019 11 04t12 45 00 882z" 17 } 18 ] 19 } 20 } 21 } parse server 3 8 0 クラスクエリ: リクエスト 1 query findhero { 2 heroes{ 3 count, 4 results { 5 objectid, 6 name, 7 createdat, 8 updatedat 9 } 10 } 11 } レスポンス 1 "data" { 2 "objects" { 3 "findhero" { 4 "count" 2, 5 "results" \[ 6 { 7 "objectid" "ffyobotk85", 8 "name" "ルーク・スカイウォーカー", 9 "createdat" "2019 07 15t01 25 20 875z", 10 "updatedat" "2019 07 15t01 25 20 875z" 11 }, 12 { 13 "objectid" "jjh0aqqjfs", 14 "name" "r2 d2", 15 "createdat" "2019 07 15t02 22 04 982z", 16 "updatedat" "2019 07 15t02 22 04 982z" 17 } 18 ] 19 } 20 } 21 } 22 } parse server 3 7 2 一般的なクエリ: リクエスト 1 query findobject { 2 objects { 3 find(classname "hero") { 4 count, 5 results 6 } 7 } 8 } レスポンス 1 { 2 "data" { 3 "objects" { 4 "find" { 5 "count" 2, 6 "results" \[ 7 { 8 "objectid" "ffyobotk85", 9 "name" "ルーク・スカイウォーカー", 10 "createdat" "2019 07 15t01 25 20 875z", 11 "updatedat" "2019 07 15t01 25 20 875z" 12 }, 13 { 14 "objectid" "jjh0aqqjfs", 15 "name" "r2 d2", 16 "createdat" "2019 07 15t02 22 04 982z", 17 "updatedat" "2019 07 15t02 22 04 982z" 18 } 19 ] 20 } 21 } 22 } 23 } クラスクエリ: リクエスト 1 query findhero { 2 objects { 3 findhero { 4 count, 5 results { 6 objectid, 7 name, 8 createdat, 9 updatedat 10 } 11 } 12 } 13 } レスポンス 1 "data" { 2 "objects" { 3 "findhero" { 4 "count" 2, 5 "results" \[ 6 { 7 "objectid" "ffyobotk85", 8 "name" "ルーク・スカイウォーカー", 9 "createdat" "2019 07 15t01 25 20 875z", 10 "updatedat" "2019 07 15t01 25 20 875z" 11 }, 12 { 13 "objectid" "jjh0aqqjfs", 14 "name" "r2 d2", 15 "createdat" "2019 07 15t02 22 04 982z", 16 "updatedat" "2019 07 15t02 22 04 982z" 17 } 18 ] 19 } 20 } 21 } 22 }