![thumbnail](/static/a316f5d9f49684945c919ece09e85bff/d59a4/hello-nuxt-graphql-with-apollo-client.png)
なにこれ
Nuxt.js+GraphQLの知識がこれから必要になるので**「Hello, GraphQL for client-side!」を読んだところ、非常にサクっと学ぶことができたので感想を書きます。 GraphQLでサーバーと通信するには「Apollo Client」**というライブラリを使用します。 Nuxt.jsではApollo Clientを使いやすくしたライブラリである **「apollo-module」が用意されており、本書は主に「apollo-moduleの設定方法・実装方法についてチュートリアル形式で学べる一冊」になっていました。ボリュームも46ページとそんなに多くないので、「1日~2日で読める」内容です。 ただNuxt.jsの説明は端折っていたり、VuexのStoreのdispatchも知っている前提なので「Nuxt.js触ったことある人向け」**かなと感じました。
目次
第1章は冒頭6ページまでで、第2章がメインです。
- <第1章> GraphQLとは?
- 1.1. 概要
- 1.2. Apollo Client
- <第2章> GraphQL with Nuxt.js
- 2.1. 概要
- 2.2. Nuxt.js
- 2.3. apollo-module
- 2.4. クエリの書き方
- 2.5. 取得(Queries)
- 2.6. 更新(Mutation)
- 2.7. エラーハンドリングについて
- 2.8. オフライン対応について
- 2.9. テスト
- 2.10. 良い使い方
- 2.11. 周辺ライブラリ・エコシステム
- 2.12. まとめ
本の感想
公式ドキュメントや他サイトを多く紹介してくれている![emoji-blush emoji-blush](data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAT80lEQVR4AeyVU4AsSRpGzx8RiWIb1xzbtm175nVf1rbNlzXGWtvGtTXXdru6ujIjYrtqNWxcrk6Z+X0nkPyf/2n+z/8R9jPvAnX33Uw1nmNQHCXCdIF2paUeTxYAoeSs7/Sw1XtW4licCgsfeYTVgGM/Iu/aP6VlzT2c6oVrA82lKpAjdaCyKlSoUBAloAWej/V453GV6s1hE1dyiV+SWH4qnu9OeZgZgP+3ngGzriHbVM+tSvNgGKuzdEYpldWoqFrcI8oh2iNaQASej/d4W70J3ilcRXADDley2H7nKmX3B2f5yq5OngJK7CNkMPRe09ODmTyBu00grw0z6mhdMKicQsceFTgkClGZenRxLORakWw7EuYRFQLgXQVf6cWXtkLfdmz3Zlx/J36ggksUtiy4PoftSan0u0Vp4j++dgOPACl7ifzqfPaKsWM5NQ74QJzXF5k6gylqJLKo2GDqJ6DaT0C1nYTkpyNxI5gsiAYB8ACAgAe8hbSEL+/G967EbZuN2zqXtHMDrpziBzRptyXtSin32l+UE94CzGAvkOV3skcc9hiy+i5eE2fl3WFDkNP1ASbrUFmDaTsGPelSVMupkGkED/gUcOA9AAjgeZnnAigQAwL078btmIFd91PSbQtxpZS0pLCdCZWOpK9c8u+c+iifAPyB2gNk1i0UWzJ8Li7ou4PmEFOn0RmLaT0UPf0mVOvpYGLwFfAWEcWe4L0D0SAhpGXc9j9jVz5Lun0Ftl+TdlmSnRXKPfaRHf286uSn6Qb8/hQgc65lTGMjj2brzPlBW4gpCCYfYqZdhpp8ExLVgysjACJ7djT/EhN4ABXjBzpxawclrPoJaW+FtMeTbKtQ6kp/vXs3d534XbaMRoKMtnxzI9+Om4JTopYIXQDT0IA54g5U2zngEwQHIvv2HOOfL0KBBLhtvyNd+jhpRwe2BwZ2DFDelczcuZvrRyPBMDLkx5fRMFj+8Vr59mp5IWhowhz1ENJwBGK7AAEBPPtHACAeoIRqPZUgKCCLvwx6F5GOAE5pJnl8MOsNl/+EDsDvCwECqMPb+UzcYM6NWiN0URE01GOOuAdVnAxJB4h6fvn9JgAAD2L7keJkzJH3wNKvg3QSuQicP/dwn34GuA9wgN8bAQKoFXfzmkxR3xW0hph6jSmEmKlXIfkJkHaCKPB7XXj0QtJyLUM1CyueQajgXEgm9XetuNvOP/QRPjGcBBmu/B9v4aTJDfLLeFycC1siTBHMhLNR4y4GUhBBAIQDiwcP4D1gcJt+Trrh96TdUKnuB5vKfWs7/IVnPs3soSSYocrf00Y8rsBHo6YgFzQEmLxCN7Sjmk8A1wd4RADkoAgQPN4DSC2T7l0Nbis+DfBlmxuXVj462OHKh7dRfp6EkQt468Xclsnrc01DgM4HqIxCNR0NWoEtIQKIcDAR/3cJ2qCajsGXdqBTwTRYMn323LdebG97+FEeBvxIBQig3nwqxVwkb6iVLwToWFD5ZiTbDrYXEQ/+QI/8EDPBCZJtq2XUyQ5cIahJyPW6N7z5VP+dD86g63kShhSgAH3HdG6KivowUzSojEFFCsmPA/GIKx3EkR9iJoipZVSlXbXM1exRMT3sjunpTYMCvg54wA4lQAA5rZGoEMtDpqhROYOOFRJFSFyHuH7AgTA8gQKtIHFgHaNCKwgUWAeJG+FMSCCuq2XVyQAuZ6h2KHTbh05r9E/8ZTcWEMAPJUB/6FxOzGTlZJ03qFijQoWEGUQZsP0gniFRAkZYv7qL7TtLTJ5QpLk9DwOWERFpdm7tZe2Gblqbs0ycXAepB+cZEi+IMrWsKkxq2asdMtnk5A+d60+84Nv8CXBDCVCAbsura4O8Viqr0aFGjAITgU/BJwyJFpyFrz+2hB/8dCXlckJ9fZZ7bz2KSy+ZPLyESPPTnzzHN55aTGdniTgOuOrS6dx325EoAaxnaKSWVYyqZbdZTbVLW55rwc0ALOBeToAAamoDQSb2F0hWo/5eXrSglAFbBtyQxyYwPP7kCr73/eWMazLEjSHdpQG+8LXZFLKeM84cA2XHyxIr/vSH9YPfnUNTVhgzNqScuMH/WkqoHXfddigkKXiGQNWyOi217LUOWU0mTi+odlvdQQoI4F9WwDtPYmoUy2E61kioUYFClP5r9XYBIzmWpHH8F8+ZxdU0PaxhXJg5Wt7V6JiZmZmZmZmZ95iZmXGZhxmau6uqqyoz7Rd3VlnqVOu6j8nSp3Da4XD8v5emBLKjm5AVCEACAgvFQ/ee8od/8qCbrxg7tFqMGg6ujIxPtX7h1+7xRrctWVkOusr8xk2xfSL1OVesh6sOjiyMaLvG8jj0NV/4pgddf/0a00q6QB+F7ETpe089Q8/SM33Zm+WNH/ZHXn8xA5pr1t0xWijLZbEoo6AEgrpLuw1U55sOjIq//PvHLWhdsja2uhiawuKIKw6MPHB028tefp8XPXeVyXlFFss/rzvrzIltN142sr4URg1dJaI4fXbW13b9tdfR1ov3UXcRlOgZ9Cw90zXr9Q7cg7jgIXBguTy9WQgxClGKEAJmM+omZZGagCQrZkSr3ence/9Jh1Ybi6OgprZN0RTLC6wt8rr7J170nFWE+Unuretz+txAO62iRF+rr9nX1p5aNCoNOcKYKAigBHVCNxMIA8Mo9Ew9G/VXL2RA0eON8qYYl70NAxlkoSbtFnapZYDv0BHJKJzeTJsbrf0LYWe3s7g2tnLJgs2ju7pZtbpYPHV0ps5COe+xuV/Wr+tzZtOqjhvrl63YPj012ZpZWghnNlqnT88cXm9pd8lAQzQISkVLJFHIKsIey7hYHLU3GTjnoSEGNeNwmSYoIRQSLWbBNNmdsrvLzoRJyzSZBl04czZ1HTs71WW3H/CBX/x0H/llT/Men3278aHlHsz2drU7QwAg9Mv6dX1On9tv02/b1+hr9TV1nX4fdME0mCS77V4vu7t7vU2TWdAiCYUSNKFnQzPHe/4hYNyEA9HE3HM3mUmboqLLPSUYbAuE2qWtnWr/1Uve58Outm9nizdM3XzFqnf/yOt825febTxNwvkTwWSaZkqf66aDHW844oq1hb6Wb3pox7HHJ2qXTCqT+T7IIJqQBU0yCioS9tb1bBhf9BxQRpYiB/BB0SWzKjvM5ndMFDSo4cBqoy413vKdDtu3eZbTU8bBYxtuumrNG7/5Ya9/1aalZUwrAJWl5UZZGXnj5x100+HKY1sIju3Yd6Dra3rxTzzlwGphpxsMIBMQZBOMeiELDP0TSc+G8i8ZEIASSANgV2mrrMksxWwvapMEFIyClsOHii/44mvcvIhjuywEkhIcP+v93v2A429zQMkdshIwpOCTP/sah1dw7CwFtRJ7te66ZclV/1z78KkJm51s0SYdkEMfxkEX1KTkHkOSUgAFMShHYA6na+1qya4H7+QsRAbTlNM5E2oOrqMGgo3qtqXKmSobCCCCTOu7W9ZXClstjfmJtnPDWrJTZXZEIAGpOXrWbQtFbszkLBmkQ567/VaDDCJkSdl1PQstPRsKEvkvPgu01YZaaTsxCxoyiTaZYVoHAxBoEkEJWvL4jGU0gSBQgkLOiBnKBe4iz07OddWZv9zKNtmYG/VZMk26kBDIkIr5fUbb6lnUqme72OcBaY/veHaV2jsHRJ7bcbb13AkxEoZmg4qIOagghtgAYpALmJCDApEE5LllNalokxYdIeSwH6XQoQuSrC1dJ9uqZ7vQ02AOsjGJh6+a5R5oDUpHRyJqkr2qTGSKRKIChAgDfMpmgO8VFzGgIudUEUTkuVogz+Uy9BEU5+5XMqiArspeberZSBc6BBLtw2fq/be2jVpT5p72gJKSxLzIkhTKGIsDaAkKmhT/VgMKhrLmzajJUC9GySKmZIOOKEEOOVGHGAg1yS7VXi09G7oLPQ5XtH/7hAfe8qa6a1aWapdKkwTRx1FSK5KKsrcsFsORzXTkOHfeiQWMBujBCMXFDcg5QePcSI6wQp3xsnvTMy4LS+MBPIIalGQcjAsNhtVV0qZuUnd7NsxQL2TA7Efv9tinPcv9S7N8RlbD25gIMJiBLmVJUYiFagef+n3VOz87fNwHsn4IaTAhKSgXgHcefABqsIBFHn49X/8DaaPyo59UxFbKHMArSjC2pxFZko7sqLO0tev+nu18A8p5LUzOzsyOno2/y92Uw2gLjLE4p2ViCUtk4frbeL/3K372t/jMr+Mv/4YcYRXjoAThwpo3qAkWg/3szPiFX+EzvoZX3B0+7mOKxX1D7cVBS3sxh9fGKLDH0LMc3Yq/69kwudAhkJhh5w8erX91yxXlI0ZTpfagDUaUwAgtBEGUZIQtPvL9w9EneMkfpW/7Xn7/L3i7d0hv9ixWDiHmLm+JhHkDggZtOv4kf/1X/NHvh0ceJGd80meHu940uCfFMtmihhQEhj4T2VIrOaGdZO2ZsIPZhQyAiu1vfak3vP9t+ZorD+addS0FmiaYv9OSBIrheE+LW3zGFxXf3VT3/UN64oHwvd8VDl+ZnnFnevozuP469h8IqyuMmsH1GVtnOXmS++7jNa/i7teFs6fCyohLVtObf0D4oPcP7ktWghm6uRsfIRoyQnbUdjj5TdOJjXxNz4RtVLiYATsbMzuvOpq/dtml9c5mVjQZFHI8PFpmBYo554OOfZPq07+y+NkfTK/+43TZItNJeOlfhr/9c5qFtLaPpWVKA7QtO1uc3cIsLI04sMLBQ3SFt/zQ4p3eCQ/ncDhhRnSYv2qUQkUlkzpL3XbVs/RM9Lq4ATkkbXzB3/jzZ19THzq0r15fVkNBNIVRUoKcP8vH8ASGKStb1Ud9ZvirZxd/9Qtp+xiHD1BGtDVMW9odakWwEGF1KV29ThPMpkxmXPoM3vZDwu03JY8mESwH7TnDZVD3lEnO+lgN8M5s1Id6Fmxg59/yxUiLzfvP2PzbR/Mn3n5//dJmX1FXQkkDrHMqA3zjXKzBsfSiu7jj2eElf87df5M2jrBQWVmiNJQIUGvqOtqOGHPlbdz55uGNn5PG0+SpPLffFsPhqPYiuqAdTJhRW7qd1G1WPUPPQi8tXNwAEls4/Ql/6s//7or6sivXujeN5VCWU1kslBDjpMk5eIxQYIgn2L9UvdW7hhe9fXjsYR69hxNPsH2G2YQIFpZZPRguu5Zrb+Xqq1N0yclkGowH2EQZ5rtBdQ8+M2RHzqpuN7WbnSPH68t6BpzG1r/ny9EJTp/Ztf8HXpHf83n7uu+J1bLUmzBerMq4UIhxMJp/NyBgGDHocDwtjrjpem66DYU6o21DRBqNiFHSYsceeIccRjoREOQAXQZ1ISuJOq1mkx6+2j3Z7fa9n9m1gdMDk3+rAYkNnPj2l7v/za+PH7lrtfukZinUhSLGlYUAEUFBg0CBQFKSmDNiA4BS0kIkUFEDAEPNDHKIAs7B556ys6dpVXdTPVN1pzp//0j8yLe/PO/HCWwg/z0GwBQnsfLuv1p//R/X45abx+3bGo8oRWlCaVCIJkgUJGIAT0CcF3MAmU+Y509z4OfFCOoA35JT6i51K81OV9Pjrfsfq3/w7r+av47jA8MU/r0GJLaGAssf8lv5g7/2XvWyy0fdGwvGDdGUHl5GihggAubg5jkhXeRXVHERAwKo5052piF3Ut2sPbzZ0c7RJ+or+l5xCicvdOwDNC4+JTo4vqN5xTGveesr8unLxaVGIQqCMMwkIc4HwjzIvAyxzC+nDssyyCHWoCtyFnvgu6FuV3UzzU5VsyM9fPf6j/7d/LqXHfE4npwf/f+oAdCiwiMb4hVHvPzND+eNqyWvHM7IIiHIufOCueM3MZ8zb0gv5sCHZfPwXaELOR2u89vkVtWeSW0P/2TriUfqyz/md/Lr/+oxj+MpHMdZ+M8aAFMDxiMb8g/v99K3vNyBfZE3RZJJ1CSJDJlzxkSQ5qDnIA3K81T3gNWgB+41DXapZ1Nu7MF3J6rZU537Hqp/+D6/nt/5iiOemIM/A/9VBsAEFXlyIn7wlV75nMNx5vKmu6O0RnvQBoAkwWDKHHAEzpvP84xo9zR8Gy8n9o71Lboe/lT2x7vtp9rdv7zbD73Nz+VPn9xxHEdwDKfhv9oAmKBDRfmF1+djs4mX3Lqcl6/UvDKHNdkZRtCQHbKbH2Hk/G0sWnQD+LQXuZty2x74ZtWdqWYnqvZI54lH68u+/W/ymz7rT/IfcGKAH0Ze/rf+WhzruGTQweXG+ve8vRe8+Q3xngcOlxua/UWzXpSVEMuhWcBCiDEaoqDEeZfFlINhOcMkddNh5LdTt7VnwOnj9cE/ezB/5ZN+z9/sdDZxCicGbSL/p/4ys4b9OIgD2Hf1mrWvfnPPev418XaXHIw7RmslehOalSIWQywQ43PPEqUAdQCX5CTldC9227WH127VPHEyX/23j+Xvf/GfecnjW7YY7vA4hTPY+t/4z9Ai1rEPB4b5NYw+/VlueKdbyrNuOJjPWlt3/cJyWSyLwTjEiDKafwdQ25QtZqlO0nSnTrY2PfTgqXjJb99bX/LtL/Eg2gF0c4DfGOYn/5t/mipYxvqcVrCKxYbyLre67K5rXH3bJeWawyt51crYocWRtXFjEWadyaS1tT1z8vh2PHH3ifroXzzq8d+8x9GOOgCexTY257SD6v/INBrgr8BNuAPPwV14a7wj3gXvjnfFe+DdBr3HsOzdh5x3HLa5a6hxB24aaq9j5P/wNMIqLsHVuBlPxxsPMM/HCwe4eb1wWPecIffpw7ZXD7VWMfr/9M/RwPg8jYY4//wIiQ4VM7RDnFf+9zT5PzcN0Bf8hiBRB3X/U8f2PwGcVgYKFzeFKAAAAABJRU5ErkJggg==)
文章中にNuxt.js+GraphQLを学んでいくうえで参考になるサイトを多く紹介してくれています。 そのため**「読了後も紹介先を見ながら理解を深めていける」**のが良い点です。 本書に紹介されているものと、それに付随して自分で調べたものを以下にまとめました。
- Apollo ClientのAPIリファレンス
- apollo-devtools
- Chromeの拡張機能です。開発者ツールでアプリのGraphQLサーバーに対してクエリの送信・取得ができます。
- GitHub GraphQL API explorer
- GitHubが提供しているGraphQLのAPIを叩けるオンラインエディターです。
- とりあえずGraphQLを試したいならココがオススメです。
- GraphiQL
- ブラウザ上でGraphQLのIEDを実現するライブラリです。GraphQLを調べているとよく出てきます。
- 機能がシンプル過ぎて、HTTPヘッダーを追加できない(つまり認証情報が乗せられない)などのデメリットがあります。
- Altair
- GraphiQLよりリッチなGraphQLのIEDです。Chrome拡張機能、Electronアプリ、Webサイトなどのさまざまな形式で提供されています。
- HTTPヘッダー情報などを追加できるので認証が必要なAPIも叩けます。
テストについてもチュートリアルがあるのは助かる![emoji-blush emoji-blush](data:image/png;base64, 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)
実際の開発だとテストコードは必須なので、プロダクションコードだけでなくGraphQLのモックを使ったテストが紹介されていて非常にありがたいです。
サンプルコードを見ながら読み進めたほうが良い![emoji-warning emoji-warning](data:image/png;base64, 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)
本書ではチュートリアル形式でサンプルアプリを作っていきますが、記載しているソースコードのファイルパスは書かれていないことが多いので、そこらへんはサンプルコードが理解の助けになります。あと必要なライブラリのyarn addも「明示してないけど適宜やってね」という感じでした。
GitHubのトークンはハードコードしないほうが良いのでは?![emoji-warning emoji-warning](data:image/png;base64, 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)
GitHubのアクセストークンをソースコードにハードコードするよりは、@nuxtjs/dotenvを使う方法を載せておいたほうが親切かなと思いました。実際サンプルコードは@nuxtjs/dotenvを使っていますし。
誤植?
自分の認識ミスかもしれませんが...
- (P9)
apollo-moduleとapollo-link-httpをインストールします。
の直後のコマンドがyarn add @nuxtjs/apollo
になっています。正しくはyarn add @nuxtjs/apollo apollo-link-http
です。 - (32P)型「URI」は「String」です。GraphQLにURIという型はないし、32Pの型定義にもURIの定義はないので、おそらく「String」かと思います。
- (33P)reposMockのviewer.repositories.nodesは配列なので[]で囲む必要があります。
- (33P)addMockFunctionsToSchemaにセットするオブジェクトのプロパティは
mock
ではなくmocks
です。 - (39P)「予期せぬネラー」は「予期せぬエラー」です。
まとめ
Nuxt.js+GraphQLをまだ始めたばかりですが、**「Hello, GraphQL for client-side!」**は最初のとっかかりとしてオススメの一冊でした。これでapollo-moduleの設定・実装・テストの必要最低限を把握できたので、次のステップとしては、以下を参考に、サンプルアプリを作ったりAppoloのキャッシュまわりの設計について取り組むのが良いかなぁと考えています。
🍅