graphQLまとめメモ

GraphQLとは
APIのクライアントとサーバーのデータの問い合わせに特化したクエリ言語のこと
APIに対して、この型でデータを返してほしいと指定できる
取得できるフィールドは2種類
スカラ型
- Int
- Float
- String
- Boolean
- ID(ユニークな型)
に対応している
オブジェクト型
1つ以上のフィールドを含んだグループ
REST APIとは
Representational State Transferの略
REST(れすと)とは:シンプルなWebシステムの設計のこと
CRUDする
RESTの4原則
1.統一インターフェース
2.アドレス可能性
3.接続性
4.ステートレス性
REST APIとはどう違う?
余計なデータを取得しないですむ
エンドポイントが1つで情報を取得できるので呼び出し回数が減る
REST APIだと全部取得しないといけない、欲しいデータだけ取得するならエンドポイントを分けなきゃいけない
型指定ができてデータが明確になる
APIとは
アプリケーション プログラミング インターフェイスの略
インターフェイスは異なる二つを繋ぐという意味
ソフトウェアとプログラムを繋いでいる
機能を拡張したり追加することができる
→spotify APIだと音楽が取得、再生できる機能を自分のアプリに追加できるとか
リクエスト(要求)とレスポンス(応答)に分かれる
ユーザーがリクエストするとサーバーがレスポンスを返す
クエリ言語とは
取得、リクエストするための言語
データ取得するquery、データを変更できるmutation、プッシュ通知のようなリアルタイム処理ができるSubscriptionがある
スキーマ言語とは
APIの仕様を書くための言語
リクエストされたクエリはスキーマ言語で書かれたスキーマによって生成される
スキーマとは
データベースの構造
APIリクエストの仕様を定義したAPIのすべての機能がかかれたもの
リクエストはスキーマに沿っていないとレスポンスできない
APIエンドポイントとは
二つのアプリケーションがやり取りをするところ。
クライアントがAPIを通じてデータや機能にアクセスできるURLのこと
エンドポイントはAPIのベースURLに続くパスで構成される
例 https:hogehoge/users
/usersがエンドポイント
API呼び出しを受け、リクエストされた情報を返す
- APIでは複数のエンドポイントを持つことができる
URIとは
Uniform resource Identifierのこと
URLとURIの総称
URL→web上の住所
URI→web上の名前、固有のシリアルナンバー
CRUD
Create, Read, Update, Deleteの略
N+1問題
データベースを
図書館データベースに本の作者に本が紐づいているデータベースがあるとする
全部の本の作者取得してから、本を取得するのでデータの取得回数が多くなってしまう、、?