GraphQL かどうかはあまり大きな問題ではないですが...
コード
-
Net::HTTP::Post.new
の第2引数initheader
は、必要に応じて設定してください。今回はAuthorization
とContent-Type
を設定しています -
hostname
とapi_token
を取得しているところは、Rails の機能で実現しています。必要に応じて読み替えてください - Rails でない場合などで
require 'net/http'
されていない場合は、別途記述してください
query = <<~QUERY
{
books {
name
}
}
QUERY
{ query: }.to_json
http = Net::HTTP.new(Rails.configuration.settings.fetch(:hostname), 443)
http.use_ssl = true
req = Net::HTTP::Post.new(
'/graphql',
Authorization: "Bearer #{Rails.application.credentials.fetch(:api_token)}",
'Content-Type': 'application/json'
)
http.request(req, query)
ポイント
-
Net::HTTP.new
の第1引数address
はホスト名を指定します(https://
は含めない形にします) -
Net::HTTP.new
の第2引数port
はデフォルト 80 なので、443 にする場合は指定します - SSL/TLSを有効にする場合は、
http.use_ssl = true
を記述します