I/O BLOG;

input を整理して ouput する訓練ブログ

GraphQL

これよんだ。

githubengineering.com

GitHub では API について RESTful な設計にしてきたけど、一部のサービスで GraphQL を採用しました。
実際にサービスが動いてる状態ですっていう話。
自分も GitHubAPI 多少利用しているので、これが公式利用可能になって楽できたらいいな。

GraphQL

GraphQL はリクエスト側が欲しいデータ構造を指定、要求して、その通りにレスポンスが返ってくる設計。
REST だと返ってくる形は、概ね最初から設計されて決まっている。それはあまり柔軟ではない。 例えば、あるデータ一式がほしい時、APIの設計上、一度のリクエストで揃わない場合がある。そういう時は、複数のリクエストを分けて送らないといけない時がある。
GraphQL ではリクエスト側が、レスポンスの形を決めるので、一度のリクエストでとってこれる。とかそんなところ。

Links

使ってる Ruby gem は以下らしい。

GitHub もいくつか open source 化している

ドキュメンテーションはこっち


GraphQL represents a massive leap forward for API development.

GraphQL で API 開発は大きく前進するかもしれない。