1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

net/http で GraphQL API にリクエストする

Last updated at Posted at 2024-03-04

GraphQL かどうかはあまり大きな問題ではないですが...

コード

  • Net::HTTP::Post.new の第2引数 initheader は、必要に応じて設定してください。今回は AuthorizationContent-Type を設定しています
  • hostnameapi_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 を記述します

参考

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?