GraphQLの素振りをしていたので調べたことについてまとめておく。
親切なチュートリアルが用意されており、始めやすい。 cf. www.howtographql.com
Meta社によって開発されたWeb API開発のためのクエリ言語。
GraphQLはGraphQL Foundationによって管理されており、Meta社はその一員である。
GraphQLの仕様と全ての関連プロジェクトはOSSとして公開されている。
いくつかピックアップしたものだけ記載。
クエリの型定義。
type Query {
user: User
}
データ取得のためのクエリ。
query {
user {
name
}
}
データ更新のためのクエリ。
mutation {
updateUser {
name
}
}
データの変更を監視するためのクエリ。
subscription {
user {
name
}
}
クエリにわたす引数。
{
user(id: 123) {
username
email
}
}
gRPC、OpenAPI、Swagger、oData、SOAP、GraphQL等々のAPI仕様で実装されたAPIへのゲートウェイサーバー(GraphQL Gateway)。
API仕様さえあればAPIに対してGraphQLクエリでアクセスできる。
cf. the-guild.dev
OpenAPIに基づいたAPI仕様をGraphQLのSchemaに変換する。
cf. github.com - IBM/openapi-to-graphql
GraphQLのSchemaを作成するための便利ツール。モックを作成することもできる。
cf. github.com - ardatan/graphql-tools
Restful APIと比較して始めるのに少し手間はかかりそうだが、得られる恩恵は大きそう。
GraphQLクライアントは色々種類があるようで、選定には悩みそう。
cf. user-first.ikyu.co.jp - あなたのプロダクトに Apollo Client は必要ないかもしれない
関連書籍