Mutation の実装
前回
ローカルでGraphQL サーバー構築(その1. Apolloを利用したgraphqlサーバー立ち上げまで)
今回やること
- mutation typeスキーマの定義
- リゾルバの定義
- playgroundでテスト
mutation typeスキーマの定義
index.ts
const typeDefs = `#graphql
(略)
type Mutation {
addBook(title: String, author: String): Book
}
`;
リゾルバの定義
index.ts
const resolvers = {
(略)
Mutation: {
addBook(parent, args: {title:string, author: string}){
const book = {
author: args.author,
title: args.title,
};
books.push(book)
return book;
}
}
};
playgroundでテスト
request
mutation addBookTest{
addBook(author: "test", title: "title") {
author,
title
}
}
response
{
"data": {
"addBook": {
"author": "test",
"title": "title"
}
}
}
- bookが追加されていることを確認
request
query ExampleQuery {
books {
author
title
}
}
response
{
"data": {
"books": [
{
"author": "Kate Chopin",
"title": "The Awakening"
},
{
"author": "Paul Auster",
"title": "City of Glass"
},
{
"author": "test",
"title": "title"
},
{
"author": "test",
"title": "title"
}
]
}
}
- okです。
このやりたいこと
- .graphqlファイルを利用したリファクタリング
- graphql-codegenでTypeScriptの型定義を生成する
-
prismaとの連携
参考: APOLLO DOCS