6章GraphQL
REST APIでは、データの取得はリソースを表すエンドポイントへのリクエストとして行われる。ほとんどの場合、返されるデータの形式は決まっている。一方、クエリーベースのAPIのスタイルでは、クエリーに応じて返されるデータの形が変わるようなAPIを構築できる。この章では、クエリーベースのスタイルを代表する技術としてGraphQLを紹介する。
RESTは最も人気のあるAPIだが、GraphQLがRESTに遠く及ばないというわけではない†1。GraphQLは2015年にFacebook(現Meta)によってオープンソースでリリースされ、その後GraphQL Foundationの管理下に置かれた。GraphQLはAPI用のクエリー言語であり、型システムによるデータの定義に基づいてクエリーを実行するためのサーバー側ランタイムである†2。GraphQLはトランスポートの仕組みに依存しないが、クライアントとサーバー間のデータ交換にはHTTPが最も一般的な選択肢である。また、GraphQLはサブスクリプションの操作を利用した同時双方向通信にも対応している。多くの場合、ここではWebSocketプロトコル(「10章 WebSocket」参照)が使われる。
[†1] Postmanの「2023 State of the API Report」(https://voyager.postman.com/pdf/2023-state-of-the-api-report-postman.pdf)によると、GraphQLは3番目に人気のAPIである。
[†2] "Introduction to GraphQL" at the GraphQL website (https://oreil.ly/BclKH ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access