Работа с API в Ruby

НАВИГАЦИЯ ПО СТРАНИЦЕ

Использование Net::HTTP RestClient Faraday HTTParty Аутентификация Передача Параметров Обработка Ошибок

В Ruby существует множество способов взаимодействия с внешними сервисами через API. Давайте рассмотрим основные инструменты и подходы для работы с API в Ruby.

Использование Net::HTTP

require 'net/http'
require 'json'

url = URI.parse('https://api.example.com/data')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true  # для HTTPS

request = Net::HTTP::Get.new(url.path)
response = http.request(request)

if response.code.to_i == 200
  data = JSON.parse(response.body)
  puts data
else
  puts "Ошибка запроса: #{response.code}"
end

Использование библиотеки RestClient

require 'rest-client'
require 'json'

url = 'https://api.example.com/data'
response = RestClient.get(url)

if response.code == 200
  data = JSON.parse(response.body)
  puts data
else
  puts "Ошибка запроса: #{response.code}"
end

Использование библиотеки Faraday

require 'faraday'
require 'json'

url = 'https://api.example.com/data'
response = Faraday.get(url)

if response.status == 200
  data = JSON.parse(response.body)
  puts data
else
  puts "Ошибка запроса: #{response.status}"
end

Использование библиотеки HTTParty

require 'httparty'
require 'json'

url = 'https://api.example.com/data'
response = HTTParty.get(url)

if response.code == 200
  data = JSON.parse(response.body)
  puts data
else
  puts "Ошибка запроса: #{response.code}"
end

Аутентификация

require 'net/http'
require 'json'

url = URI.parse('https://api.example.com/data')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url.path)
request.basic_auth('username', 'password')  # HTTP Basic Authentication

response = http.request(request)

# Обработка ответа...

Передача Параметров

require 'rest-client'
require 'json'

url = 'https://api.example.com/data'
params = { key1: 'value1', key2: 'value2' }

response = RestClient.get(url, params: params)

# Обработка ответа...

Обработка Ошибок

require 'httparty'
require 'json'

url = 'https://api.example.com/data'
response = HTTParty.get(url)

if response.success?
  data = JSON.parse(response.body)
  puts data
else
  puts "Ошибка запроса: #{response.code}"
end

В Ruby есть множество инструментов для работы с API, и выбор зависит от ваших предпочтений и требований проекта. Выберите тот, который лучше всего соответствует вашим потребностям, учитывая аутентификацию, передачу параметров, обработку ошибок и другие особенности взаимодействия с внешними сервисами.