Rails Insights

Perfformio Ceisiadau HTTP yn Ruby

Mae Ruby yn iaith raglennu sy'n boblogaidd am ei symlrwydd a'i phŵer. Un o'r gweithgareddau cyffredin y gallwn ei wneud gyda Ruby yw perfformio ceisiadau HTTP. Mae hyn yn hanfodol ar gyfer gweithio gyda gwefannau, APIs, a llawer o gymwysiadau eraill. Yn yr erthygl hon, byddwn yn archwilio sut i wneud ceisiadau HTTP yn Ruby, gan ddefnyddio rhai o'r llyfrgelloedd mwyaf poblogaidd a dulliau.

Beth yw Ceisiadau HTTP?

Mae HTTP (Hypertext Transfer Protocol) yn broses sy'n caniatáu i gyfrifiaduron gyfathrebu â'i gilydd ar y rhyngrwyd. Mae ceisiadau HTTP yn cynnwys nifer o fathau, gan gynnwys:

  • GET: Defnyddir i gael gwybodaeth o'r gwefan.
  • POST: Defnyddir i anfon data i'r gwefan.
  • PUT: Defnyddir i ddiweddaru data presennol.
  • DELETE: Defnyddir i ddileu data.

Mae'r math o gais a ddefnyddir yn dibynnu ar yr hyn yr ydym am ei gyflawni. Mae Ruby yn cynnig nifer o ddulliau i wneud ceisiadau HTTP, a byddwn yn edrych ar rai ohonynt yn y penawdau canlynol.

Llyfrgelloedd i'w Defnyddio

Mae nifer o lyfrgelloedd ar gael yn Ruby i wneud ceisiadau HTTP. Mae'r rhai mwyaf poblogaidd yn cynnwys:

  • Net::HTTP: Mae hwn yn rhan o'r llyfrgell sylfaenol Ruby, sy'n cynnig dulliau sylfaenol ar gyfer gwneud ceisiadau HTTP.
  • HTTParty: Mae hwn yn llyfrgell sy'n cynnig API syml a hawdd ei ddefnyddio ar gyfer gwneud ceisiadau HTTP.
  • RestClient: Mae hwn yn cynnig dulliau mwy datblygedig ar gyfer gweithio gyda APIs RESTful.

Yn yr erthygl hon, byddwn yn canolbwyntio ar Net::HTTP a HTTParty, gan eu bod yn ddwy o'r dulliau mwyaf cyffredin a hawdd eu defnyddio.

Defnyddio Net::HTTP

Creu Cais GET

Mae Net::HTTP yn cynnig dull syml i wneud cais GET. Dyma sut i wneud cais i gael gwybodaeth o wefan:

require 'net/http'
require 'uri'

uri = URI.parse("http://www.example.com")
response = Net::HTTP.get_response(uri)

puts response.body

Yn y cod uchod, rydym yn defnyddio'r 'URI' i ddiffinio'r URL yr ydym am ei gysylltu. Yna, rydym yn defnyddio 'Net::HTTP.get_response' i wneud y cais GET a chael yr ymateb.

Creu Cais POST

Mae gwneud cais POST yn ychydig yn fwy cymhleth, gan fod angen i ni anfon data gyda'r cais. Dyma enghraifft:

require 'net/http'
require 'uri'

uri = URI.parse("http://www.example.com/api")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == "https"

request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data({"key1" => "value1", "key2" => "value2"})

response = http.request(request)

puts response.body

Yn yr enghraifft hon, rydym yn creu cais POST a defnyddio 'set_form_data' i anfon data. Mae'n bwysig nodi ein bod yn defnyddio 'http.use_ssl = true' os yw'r URL yn defnyddio HTTPS.

Defnyddio HTTParty

Mae HTTParty yn llyfrgell sy'n cynnig API syml a hawdd ei ddefnyddio. Mae'n gwneud ceisiadau HTTP yn llawer mwy cyflym a hawdd. I ddechrau, bydd angen i chi ei osod:

gem install httparty

Creu Cais GET gyda HTTParty

Dyma sut i wneud cais GET gyda HTTParty:

require 'httparty'

response = HTTParty.get("http://www.example.com")

puts response.body

Fel y gwelwch, mae'r cod yn syml iawn. Mae HTTParty yn cymryd gofal o'r holl fanylion technegol, gan ei gwneud yn hawdd i chi ganolbwyntio ar y data.

Creu Cais POST gyda HTTParty

Mae gwneud cais POST gyda HTTParty hefyd yn syml:

require 'httparty'

response = HTTParty.post("http://www.example.com/api", 
    body: {key1: "value1", key2: "value2"}.to_json,
    headers: {'Content-Type' => 'application/json'})

puts response.body

Yn yr enghraifft hon, rydym yn defnyddio 'body' i anfon data fel JSON, a rydym yn gosod y penawd 'Content-Type' i ddweud wrth y gweinydd pa fath o ddata rydym yn ei anfon.

Ymdrin â'r Ymateb

Mae'n bwysig ymdrin â'r ymateb a dderbynnir o'r cais. Gallwn wirio statws y cais a chael gafael ar y data yn hawdd. Dyma sut i wneud hynny:

response = HTTParty.get("http://www.example.com")

if response.success?
    puts "Cais llwyddiannus!"
    puts response.body
else
    puts "Cais methiant: #{response.code}"
end

Mae'r dull 'success?' yn ein galluogi i wirio a oedd y cais yn llwyddiannus, a gallwn ddefnyddio 'response.code' i gael y cod statws.

Casgliad

Mae perfformio ceisiadau HTTP yn Ruby yn broses syml a chymhwysol. Gyda'r llyfrgelloedd fel Net::HTTP a HTTParty, gallwn wneud ceisiadau GET a POST yn hawdd, gan dderbyn a thrin yr ymatebion yn effeithiol. Mae'r wybodaeth hon yn hanfodol ar gyfer unrhyw un sy'n gweithio gyda gwefannau neu APIs, a gobeithio y byddwch wedi dysgu rhywbeth newydd heddiw!

Peidiwch ag anghofio ymarfer a phrofi'r codau a drafodwyd yn yr erthygl hon. Mae'r gorau o'r Ruby yn aros i chi ei ddarganfod!

Published: August 13, 2024

© 2024 RailsInsights. All rights reserved.