Rubyの"graphql-client"使ってみた
前提
叩きたいAPIにGraphQLが用意されており、折角なので触ってみる
実装内容
Gemfileに以下を記述して、gemをinstall
gem "graphql-client"
APIのラッパーを作成する
require "graphql/client" require "graphql/client/http" module Api # GraphQLのエンドポイント、ヘッダー情報作成 HTTP = GraphQL::Client::HTTP.new(ENV['END_POINT']) do def headers(context) { "#{ENV['HEADER_KEY']}": ENV['HEADER_VALUE'] } end end # 初期化で、最新のネットワーク取得 & リクエスト Schema = GraphQL::Client.load_schema(HTTP) Client = GraphQL::Client.new(schema: Schema, execute: HTTP) end
実行してみる
Query = Api::Client.parse <<-'GRAPHQL' query { hero { name } } GRAPHQL result = Api::Client.query(Query) p result =begin #<GraphQL::Client::Response:0x0000ffff9bc01408 @data=#<#<Module:0x0000ffffa0125e58>::Query viewer=...>, @errors=#<GraphQL::Client::Errors @messages={} @details={}>, @extensions=nil, @original_hash={"xxxx"=>{"xxxxx"=>{"xxxxx"=>"xxxxx", "name"=>"xxxx"}}}> =end
感想
GraphQL理解する良い機会になった.
APIサーバーの方も作ってみようかな