Making API Requests with Faraday in Ruby
If youโre tired of Net::HTTP
, give Faraday a try ๐
What is Faraday?
A flexible HTTP client with middleware support, retries, logging, and more. Perfect for serious API clients. ๐ช
GET Products from Fake Store API
require 'faraday'
require 'json'
conn = Faraday.new(url: 'https://fakestoreapi.com')
res = conn.get('/products')
products = JSON.parse(res.body)
puts products.first["title"]
You just made a real API call, parsed JSON, and printed a product title.
Why Use Faraday?
Feature | Faraday |
---|---|
Easy setup | โ Yes |
JSON parsing | โ
Easy w/ json |
Middleware | โ Built-in |
Reusability | โ Connections |
โ๏ธ Bonus: Add Middleware
Faraday.new(url: 'https://fakestoreapi.com') do |f|
f.response :logger # Log requests
f.adapter Faraday.default_adapter
end
๐ง Logging, retries, timeouts โ Faraday handles it all.
๐งต TL;DR
- Faraday = clean + powerful HTTP client
- Use it for APIs that need more than just GETs
- Add middleware like a pro