Siirry dokumentaation sisältöön

Ruby SDK

Pieni ja Ruby-idiomaattinen asiakas sovelluksiin ja taustatöihin.

Tässä oppaassa
  1. 1Ymmärrä pakettisopimus
  2. 2Aja tai jatka töitä
  3. 3Käsittele idiomaattiset virheet
  4. 4Varmenna webhookit
Tässä oppaassa
  1. 1Ymmärrä pakettisopimus
  2. 2Aja tai jatka töitä
  3. 3Käsittele idiomaattiset virheet
  4. 4Varmenna webhookit

Pakettisopimus

Suunniteltu gem on nordic_devhouse ja ylätason moduuli NordicDevhouse. Se tarjoaa pienet muuttumattomat tulosobjektit ja uudelleenkäytettävän yhteyspoolatun asiakkaan.

JakelupakettiNimiavaruus tai importAjonaikainen tuki
nordic_devhouseNordicDevhouseTuetut Ruby-julkaisulinjat

Luo asiakas ja käytä sitä uudelleen

Ruby-rajapinta suosii nimettyjä argumentteja ja eksplisiittisiä tulosobjekteja. Yksi run-kutsu piilottaa pollauksen ja retryt muuttamatta vastauksia löyhiksi hasheiksi.

Ruby
require "nordic_devhouse"

client = NordicDevhouse::Client.new(
  api_key: ENV.fetch("NORDIC_DEVHOUSE_API_KEY"),
  timeout: 30,
  max_retries: 3
)

result = client.scrape.run(
  url: "https://example.com/products",
  formats: [:json],
  idempotency_key: "catalog-2026-08-11"
)

puts [result.job_id, result.records].join(" ")

Hallitse kestävää työtä

Start ja wait sopivat Sidekiq-, Active Job- ja muihin worker-järjestelmiin sitomatta ydingemiä niihin. Siirtototeutus voi tukea Fiber-scheduleria.

Ruby
job = client.scrape.start(
  url: "https://example.com/products",
  formats: [:json]
)

result = client.jobs.wait(
  job.id,
  timeout: 600
)

Julkiset mallit

Nimet noudattavat kielen käytäntöjä, mutta kaikki SDK:t säilyttävät samat kentät ja työn tilojen semantiikan.

KäsiteSopimus
Asiakkaan asetuksetAPI-avain, perusosoite, aikakatkaisu, retry-raja ja valinnainen testisiirto
KeräyspyyntöURL, tulosmuodot, webhook-osoite, metatiedot ja idempotenssiavain
TyöVakaa tunniste, tila, aikaleimat, edistyminen ja varoitukset
Työn tulosTyötunniste, tietuemäärä, tyypitetty data, metatiedot ja pyyntötunniste
Webhook-tapahtumaVarmennettu tapahtumatunniste, tyyppi, aikaleima ja tyypitetty data

Käsittele virheet idiomaattisesti

Kaikki poikkeukset perivät NordicDevhouse::Error-tyypin ja tarjoavat kentät code, request_id, status, attempts ja cause. RateLimited lisää retry_after- ja ValidationError issues-kentän.

Ruby
begin
  client.scrape.run(url: url, formats: [:json])
rescue NordicDevhouse::RateLimited => error
  logger.warn("rate limited",
    request_id: error.request_id,
    retry_after: error.retry_after)
  raise
rescue NordicDevhouse::ValidationError => error
  render_validation(error.issues)
rescue NordicDevhouse::Error => error
  logger.error("SDK failure", request_id: error.request_id)
  raise
end

Varmenna raaka webhook-runko

Varmennus käyttää täsmälleen vastaanotettuja tavuja, tarkistaa HMAC-SHA256-allekirjoituksen ja aikaleiman sallitun eron ja palauttaa tyypitetyn tapahtuman. Tallenna varmennettu tapahtumatunniste kaksoiskäsittelyn estämiseksi.

Ruby
event = client.webhooks.verify(
  payload: request.raw_post,
  signature: request.get_header("HTTP_NORDIC_SIGNATURE"),
  secret: ENV.fetch("NORDIC_WEBHOOK_SECRET")
)

import_result(event.data.job_id) if event.type == "scrape.completed"

Ajonaikaiset ja elinkaaren säännöt

  1. 1
    Tue ylläpidettyjä Ruby-julkaisulinjoja ja julkaise tyypitetyt RBS-määritykset
  2. 2
    Käytä kutsurajapinnassa nimettyjä argumentteja
  3. 3
    Palauta muuttumattomat arvo-objektit OpenStruct-arvojen sijaan
  4. 4
    Käytä yhteyspoolia uudelleen ja tee close idempotentiksi
  5. 5
    Pidä Rails- ja Sidekiq-apurit valinnaisissa integraatiotiedostoissa
Oliko tästä sivusta apua?