LoginSignup
2
1

More than 5 years have passed since last update.

ではGraphQLがDeclarativeとはどういう意味?そこには力関係がひそんでいる・・・

Last updated at Posted at 2018-09-28

DeclarativeなAPI?

前記事ではDeclarativeとは何なのかを、個人的偏見も込みで解釈しました。

要は、トップダウンで、目的だけ一言で言う、ようなクエリです。

GraphQLがDeclarativeと呼ばれる理由は何なんでしょうか。
そこには以下のような力関係があると思います。

これまではAPI利用者はAPI提供者の仕様に従っている?

従来、API利用者とAPI提供者の力関係はどちらかというと

API利用者 API提供者
エンドポイントにリソース名だけ付けて要求 エンドポイントに対しあらかじめ決まった処理を実行
レスポンスの中身は変えられない レスポンスはあらかじめ決まった形式で返答
たくさんのレスポンスが必要なら何回もリクエストを投げる リクエストに対してあらかじめ決まった個数だけレスポンスを返す

力関係 API利用者 < API提供者

API提供者に柔軟性がないばかりに、API利用者は言われるがままの状態です。

ではGraphQLは?

API利用者 API提供者
エンドポイントに「何が欲しいのか(条件など)」を付けて要求 リクエストに合わせて柔軟に処理を変更
レスポンスの中身を必要な分だけ指定して要求(フィールドなど) レスポンスは要求通りの形式で返答
レスポンスの中身がたくさんあるかどうかは気にしないで条件だけ送る 条件に当てはまったものはたくさんでもちゃんと返す

力関係 API利用者 > API提供者

出ましたね! 利用者側はかなり空気を読んでません。

その代り、API利用者がすごく強くて楽なわけです。

なので、フロントエンド開発者がやりやすくするためのBackend For Frontend (BFF) のAPIとして期待されているわけですね。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1