Ruby:
HTTP-pyynnön lähettäminen
How to:
Rubyssä HTTP-pyyntöjen lähettäminen on suoraviivaista. Tässä esimerkki käyttäen net/http
-kirjastoa:
require 'net/http'
require 'uri'
uri = URI('https://reqres.in/api/users')
response = Net::HTTP.get_response(uri)
puts response.body if response.is_a?(Net::HTTPSuccess)
Sample output:
{
"page":1,
"per_page":6,
"total":12,
"total_pages":2,
"data":[ ... ]
}
Jos tarvitset enemmän toimintaa, käytä Net::HTTP.start
. Esimerkiksi POST-pyynnölle:
require 'net/http'
require 'uri'
require 'json'
uri = URI('https://reqres.in/api/users')
header = {'Content-Type': 'application/json'}
user = {name: 'Mikki Hiiri', job: 'Seikkailija'}
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == 'https')
request = Net::HTTP::Post.new(uri.request_uri, header)
request.body = user.to_json
response = http.request(request)
puts response.body
Deep Dive
net/http
on Ruby-kirjasto, joka on ollut osa kieltä melkein alusta alkaen. Se tarjoaa monipuolisen tapahtumakäsittelyn HTTP-pyyntöjä varten.
Vaihtoehtoja on. HTTParty
ja Faraday
ovat suosittuja helppokäyttöisyytensä ja monipuolisuutensa vuoksi. Rails-sovelluksissa ActionDispatch::Integration::RequestHelpers
tarjoaa testaustarkoituksiin metodeja HTTP-pyyntöjen tekemiseen.
HTTP-pyyntöjä lähetettäessä kannattaa huomioida SSL-sertifikaatit (turvallinen yhteys) ja aikakatkaisut, etenkin tuotanto-sovelluksissa.
See Also
- HTTParty GitHub repository
- Faraday GitHub repository
- Reqres, simuloitu API testi- ja kehitystarkoituksiin: Reqres