OSS探訪GitHubでログイン

RubyのHTTP通信を共通APIで扱い、アダプターとミドルウェアを用途に合わせて組み替えるクライアントライブラリ

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
5,951
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/16
ページ内ナビ

概要

Faradayは、RubyアプリケーションからHTTP APIやWebサービスを呼び出すためのクライアントライブラリです。共通のConnection APIの下でNet::HTTPなどのアダプターを選び、認証、JSON変換、ログ、エラー処理といったミドルウェアを要求・応答の流れへ組み込めます。通信実装を切り替えても、呼び出し側の構造を保ちやすくなります。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Connectionへ共通設定と要求・応答処理をまとめる

Faraday.newで基準URL、ヘッダー、クエリ、タイムアウト、プロキシをまとめ、同じConnectionからGET、POSTなどを実行できます。ミドルウェアで認証ヘッダー、JSONの符号化・解析、4xx・5xxの例外化、ログ出力を順序付きで構成できます。

出典:[2][3]

向いている用途

複数の外部APIを一貫した通信方針で扱うRubyアプリに向く

サービスごとの接続設定やエラー処理をConnectionへ閉じ込めたいAPIクライアント、gem、Webアプリに向きます。既定のNet::HTTPから別の実装へ切り替えたい場合や、複数のAPIで共通ミドルウェアを再利用したい場合にも適します。

出典:[1][2]

導入前の確認

Ruby版、追加gem、ミドルウェア順序を固定して試験する

v2.14.4はRuby 3.0以上を要求します。Faraday本体に含まれる既定アダプターはNet::HTTPで、その他のアダプターは別gemとして導入します。必要な機能が本体か外部gemかを確認し、依存版を固定してください。

ミドルウェアの追加・順序によって要求や応答の扱いが変わります。タイムアウト、再試行、JSON解析、4xx・5xx、機密ヘッダーのログ出力を実際のAPIに合わせて試験し、グローバルな既定Connectionの変更は他の呼び出しへの影響も確認してください。

出典:[1][4][2]

参考にした公式資料

  1. [1]Faraday v2.14.4 README(2026-10-04)
  2. [2]Faraday v2.14.4 Quick Start(2026-10-04)
  3. [3]Faraday v2.14.4 configuration(2026-10-04)
  4. [4]Faraday v2.14.4 gemspec(2026-10-04)
  5. [5]Faraday v2.14.4 release(2026-10-04)
編集部からの補足

APIクライアントごとに認証、JSON変換、再試行、ログ処理を散らさず、通信の共通層へまとめられる点が比較の軸です。追加アダプターやミドルウェアは別gemの場合があるため、必要な機能と保守状況を構成単位で確認してください。

3ステップで試す

  1. 1

    固定版をGemfileへ追加する

    空の試用ディレクトリへFaraday 2.14.4を固定して導入します。Ruby 3.0以上とBundlerが必要です。

    mkdir -p faraday-demo && cd faraday-demo && printf "source 'https://rubygems.org'\ngem 'faraday', '2.14.4'\n" > Gemfile && bundle install
  2. 2

    GETリクエストのスクリプトを作る

    公式Quick Startと同じ公開試験サービスへGETリクエストを送り、状態コードとContent-Typeだけを表示する例を作ります。手順1から同じ端末で続け、現在位置はfaraday-demoです。

    printf "require 'faraday'\nresponse = Faraday.get('https://httpbingo.org/get')\nputs [response.status, response.headers['content-type']].join(' ')\n" > request.rb
  3. 3

    Bundler経由で実行する

    手順2と同じfaraday-demoディレクトリで、固定した依存関係を使ってスクリプトを実行します。実サービスではConnectionへタイムアウト、エラー処理、認証の秘匿を追加してください。

    bundle exec ruby request.rb
公式READMEで確認

成長

成長の推移 · 直近30日

5,951 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
5
Open PR
29

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
5,951
Forks
1,027
Watchers
87
Open Issues
51
Contributors
264
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/16

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?