RubyでHTTPClientを使う方法【初心者向け】
初心者向けにRubyでHTTPClientを使う方法について解説しています。HTTPClientはネットワーク通信を行う際に使用します。導入と基本の手順をサンプルコードを動かしながら学習しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
RubyでHTTPClientを使う方法について解説します。
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
HTTPClientを使う方法について詳しく説明していくね!
お願いします!
HTTPClient(クライアント)とは
`HTTPClient` と呼ばれるものは、Rubyにおいては https://github.com/nahi/httpclient を指すことが多くあります。
`http client` とただ書かれたときには、いわゆるネットワーク通信を取り扱うライブラリであることが多いです。
この `HTTPClient` も例に漏れず、ネットワーク通信を取り扱うライブラリで、Rubyが標準で取り込んでいる同様のライブラリ`net/http` よりも取り扱いやすいようなライブラリとなっています。
HTTPClient(クライアント)の使い方
さて、この `HTTPClient` は標準ライブラリではないので、gem を使ってインストールする必要があります。
bash
$ gem install httpclient
このコマンドを実行する、あるいは `Gemfile` に
gem 'httpclient'
と記述したのち、 `bundle install` することで利用することが出来るようになります。
そして、Rubyのコード中で `require ‘httpclient’` を実行するか、 bundler を利用してすべての依存Gemを読み込むことで実際に利用することができます。
実際のコード中では、 `HTTPClient.new` したインスタンスを使って、リクエストを行っていくことになります。
実際に使ってみよう
さて、ここからが本番です。基本となる GET, POST を中心にサンプルコードを記載しますので、実際に手元に書いて動かしてみましょう。
適当なAPIサーバーをたてても良いのですが、手間もかかるので一旦ダミーのTODOListのようなAPIを想定します。
| http method | url | decription |
| GET | https://example.com/todos | todo一覧を取得するAPI |
| GET | https://example.com/todos/:id | todo の id=:id を取得するAPI |
| POST | https://example.com/todos | todo を追加するAPI。 body は json で{“text”: “freetext”} といった形 |
rb
require 'httpclient' base_url = 'https://example.com/todos' client = HTTPClient.new() response = client.get(base_url) puts response.status #=> 200 puts response.body #=> {} client.post(base_url, {text: 'todo'}, 'Content-Type' => 'application/json') response = client.get(base_url) puts response.status #=> 200 puts response.body #=> {"todos": [{"id": 1, "text": "todo"}]} response = client.get(base_url + '/1') puts response.status #=> 200 puts response.body #=> {"id": 1, "text": "todo"}
このように、簡単なリクエストなら少ない行数でさっと書けるのが `HTTPCLient` の特徴です。
都度 `response.status` をチェックしていますが、ここが 200 以外のときはエラーだったり特別な処理が必要になったりすることもあるので、都度チェックするコードを記述すると良いですね。
また、今回は記述しませんでしたが認証情報をセットして、TwitterのようなOAuth認証を行いながらリクエストしたりする事もできます。
HTTPClient は公式の rubydoc のサンプルコードが充実しているため、是非そちらを読みながらたくさんコードを書きましょう。
監修してくれたメンター
大塚 颯斗
Ruby on Rails, PHP, Go を中心としたウェブアプリケーションエンジニアとして都内のウェブサービスを提供する企業に在籍。 家で飼っている猫が好きだが、何故かすぐに猫に攻撃されて嫌われているかもしれない、というのが悩み。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。