Eve Porcello、Alex Banks:初めての GraphQL

作成日:2021-04-30
最終更新日:

概要

本書は API のための問い合わせ言語 GraphQL の解説書である。目次などは下記にある。
https://www.oreilly.co.jp/books/9784873118932/

感想

この本はわたしにとって難しい。

スター・ウォーズ

1 章は GraphQL の紹介である。まず、GraphQL と対比される REST について課題を取り上げている。 その課題は、REST 版の SWAPI からデータを取得するアプリケーションにあるという。 私はまず、SWAPI とは何か、というところから始まる。Star Wars API ということがわかって、 本書では、https://swapi.co/api/people/1/ に GET リクエストを投げる、 と書いてあるのだが、ここにブラウザでアクセスすると
このサイトにアクセスできません
swapi.coにより途中で接続が切断されました。
と出てしまう。2021 年 4月 30 日では、実はドメインが変わっていて、
https://swapi.co/api/people/1/
にアクセスしないといけなかったのだ。

これを調べるだけでも熱が出てしまったのだ。 まして、私はスター・ウォーズのことなど全く知らない。 セサミ・ストリートに C-3PO や R2-D2 が出てきたことぐらいしか知らない。

なぜ GraphQL という名前なのか

2 章はグラフ理論について解説されている。きっとこの章があるのは、 GraphQL という名前の由来がグラフ理論にあり、著者がグラフ理論に敬意を表したからなのだろう。

グラフの例として木がとりあげれ、木の例として友人関係の木が p.33 で示されている。 ただ、友人関係を木として示すのは、厳密には誤りだろう。 木は閉路を含まないが、友人関係は閉路を含むからだ。つまり、A - B - C という木があれば、 A - C のエッジはあってはならないが、友人関係ならば A - C のエッジがあってもいいからだ。

GraphQL を試す

3 章は GraphQL の問い合わせ言語というタイトルだ。GraphQL はそれ自体で問い合わせ言語である、 という説明があるから、GraphQL の問い合わせ言語というタイトルだと、 GraphQL の名のもとでさらに詳しい言語があるのかと思った。原書の第3章は The GraphQL Query Language とあるので、GraphQL という問い合わせ言語、という意味にとっておく。

GraphQL API の便利なツールとして、GraphiQL や GraphQL Playgournd が紹介されている。 実際に使ってみるにはどうしたらいいのだろうか。気になっていたが、p.41 で紹介されている下記 URL
http://graphql.org/swapi-graphql
にアクセスしたら、そのまま GraphiQL のユーザーインターフェースだったのでびっくりした。 さて、ここでどんなクエリを書いていいか困ったが、本書を読み直して、p.2 の図 1-1 や、 p.3 の図1-2 などのクエリを書いたらうまくいった。

なお、図1-1は次のクエリである。

query {
  person(personID:5){
    name
		birthYear
    created
  }
}

最初の行の query は省略してもいいようだ。

{
  person(personID:5){
    name
		birthYear
    created
  }
}

なお、p.41 で紹介されているもうひとつの下記 URL
https://developer/github.com/v4/explorer/
も、GraphiQL を備えている。 GitHub にサインインして、単純なクエリであればうまくいくことを確認した。

誤植

■P.36  L.12(上から)

書誌情報

書 名初めての GraphQL
著 者Eve Porcello、Alex Banks
訳 者尾崎 沙耶、あんどうやすし
発行日2019 年 11 月 11 日(初版第1刷)
発行元オライリー・ジャパン
定 価2600 円(本体)
サイズ
ISBN 978-4-87311-893-2
その他越谷市立図書館で借りて読む

まりんきょ学問所コンピュータの部屋Unix, Linux > Eve Porcello、Alex Banks:初めての GraphQL


MARUYAMA Satosi