GraphQL 服务器构建(第2部分:Mutation 实现)
突变实施
上次
在本地构建GraphQL服务器(第1部分: 使用Apollo搭建GraphQL服务器)。
这次要做的事情
mutation typeスキーマの定義
リゾルバの定義
playgroundでテスト
突变类型模式的定义
const typeDefs = `#graphql
 (略)
  type Mutation {
    addBook(title: String, author: String): Book
  }
`;
解析器的定义
const resolvers = {
    (略)
    Mutation: {
        addBook(parent, args: {title:string, author: string}){
            const book = {
                author: args.author,
                title: args.title,
            };
            books.push(book)
            return book;
        }
      }
};
在操场上进行测试
mutation addBookTest{
  addBook(author: "test", title: "title") {
    author,
    title
  }
}
{
  "data": {
    "addBook": {
      "author": "test",
      "title": "title"
    }
  }
}
- bookが追加されていることを確認
query ExampleQuery {
  books {
    author
    title
  }
}
{
  "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
 
    