[GraphQL] 5. Query & 6. Mutation
Query実装-Code要求で使用するクエリ クエリー文ごとに返されるデータ型 を指定します.
Type返されるデータのフォーマット を指定します.データ型フィールド Resolver Queryは、オブジェクト内のアイテムにデータを返す関数宣言です. 実際のプロジェクトでは、MySQLクエリーコードなど... マルチステーション実装-Code
デバイスデータの追加
マルチステーション-その他のルートタイプ SQLのINSERT文など を実現
Test
マルチステーション-ルートタイプの変更 SQLのUPDATE文など を実現
Test
マルチステーション-ルートタイプの削除削除後、受信データを結果値として削除する変数 に保存する.データからデータを削除する、その削除を に戻す.実際のプロジェクトはSQLのDELETE文などを用いて を実現する.
Test
https://www.yalco.kr/@graphql-apollo/2-2/
https://www.yalco.kr/@graphql-apollo/2-3/
Query : 데이터 조회
Mutation : 데이터 추가, 수정, 삭제
Queryルートタイプtype Query {
teams: [Team]
}
定義Type
type Team {
id: Int
manager: String
office: String
extension_number: String
mascot: String
cleaning_duty: String
project: String
}
const resolvers = {
Query: {
teams: () => database.teams
}
}
デバイスデータの追加
マルチステーション-その他のルートタイプ
type Mutation {
insertEquipment(
id: String,
used_by: String,
count: Int,
new_or_used: String
): Equipment
...
}
ResolverMutation: {
insertEquipment: (parent, args, context, info) => {
database.equipments.push(args)
return args
},
//...
}
Test
mutation {
insertEquipment (
id: "laptop",
used_by: "developer",
count: 17,
new_or_used: "new"
) {
id
used_by
count
new_or_used
}
}
デバイスデータの変更マルチステーション-ルートタイプの変更
type Mutation {
editEquipment(
id: String,
used_by: String,
count: Int,
new_or_used: String
): Equipment
...
}
ResolverMutation: {
// ...
editEquipment: (parent, args, context, info) => {
return database.equipments.filter((equipment) => {
return equipment.id === args.id
}).map((equipment) => {
Object.assign(equipment, args)
return equipment
})[0]
},
// ...
}
Test
mutation {
editEquipment (
id: "pen tablet",
new_or_used: "new",
count: 30,
used_by: "designer"
) {
id
new_or_used
count
used_by
}
}
デバイスデータの削除マルチステーション-ルートタイプの削除
type Mutation {
deleteEquipment(id: String): Equipment
}
ResolverMutation: {
deleteEquipment: (parent, args, context, info) => {
const deleted = database.equipments
.filter((equipment) => {
return equipment.id === args.id
})[0]
database.equipments = database.equipments
.filter((equipment) => {
return equipment.id !== args.id
})
return deleted
}
}
Test
mutation {
deleteEquipment(id: "notebook") {
id
used_by
count
new_or_used
}
}
Referencehttps://www.yalco.kr/@graphql-apollo/2-2/
https://www.yalco.kr/@graphql-apollo/2-3/
Reference
この問題について([GraphQL] 5. Query & 6. Mutation), 我々は、より多くの情報をここで見つけました https://velog.io/@ruthetum/graphql-apollo-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol