引き続きGraphQLに入門しています。
前回は公式チュートリアルを元に実装しましたが、今回は自作してみます。
Mutationも作成します。
nodemonの追加
先に、nodemonを追加します。
nodemonとは、ソースコードの更新を起動中のサーバに自動反映するライブラリです。
書籍一覧取得Queryのタイトル絞り込み
Query定義にtitleの引数を追加します。
type Query { - books: [Book] + books(title: String): [Book] }
次に、resolverに絞り込み機能を追加します。
books: (parent, args) => { let res = books if (args.title) { res = res.filter(({ title }) => title.includes(args.title)) } return res },
動作確認してみます。
書籍新規追加Mutationの追加
Mutationを定義します。
type Mutation { addBook(title: String!, author: String!): Book }
リクエストでは、タイトルと書籍を指定します。
次にresolverを追加します。
let idAutoIncrement = 3; ... addBook: (parent, args) => { const book = { id: idAutoIncrement++, title: args.title, author: args.author, }; books.push(book); return book; }
追加してみます。
再度取得してみると、実際に取得できることが確認できます。