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

广告
将在 10 秒后关闭
bannerAds