Ontwikkel een Ruby-script voor API-integratie
description
Met deze prompt kun je snel een Ruby-script maken dat naadloos met externe APIs communiceert. Het bespaart tijd bij het opzetten van verbindingen en zorgt voor betrouwbare gegevensuitwisseling dankzij ingebouwde foutafhandeling. Het is ideaal voor ontwikkelaars die Ruby willen gebruiken voor moderne webservices en automatisering.
prompt
Help me een Ruby-script te schrijven dat communiceert met de volgende API: <voer de API-URL in> Gebruik de volgende authenticatiemethode: <beschrijf de authenticatie, bijvoorbeeld API ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een Ruby-script dat communiceert met de API van weather.com om een 5-daagse weersvoorspelling op te halen. Het gebruikt een Bearer-token voor authenticatie en bevat foutafhandeling.
**Let op:** Vervang `YOUR_API_KEY_HERE` door je daadwerkelijke API-sleutel en pas eventueel de parameters aan (zoals locatie).
```ruby
require 'net/http'
require 'uri'
require 'json'
# Configuratie
API_URL = 'https://api.weather.com/v3/wx/forecast/daily/5day'
API_KEY = 'YOUR_API_KEY_HERE' # Vervang dit met je API-sleutel
LATITUDE = '52.3676' # Vervang door je gewenste locatie (bijvoorbeeld: Amsterdam)
LONGITUDE = '4.9041'
# Opbouwen van de URI met query parameters
uri = URI(API_URL)
params = {
apiKey: API_KEY,
geocode: "#{LATITUDE},#{LONGITUDE}",
format: 'json'
}
uri.query = URI.encode_www_form(params)
begin
# HTTP GET verzoek
response = Net::HTTP.get_response(uri)
# Foutafhandeling op basis van HTTP status
case response
when Net::HTTPSuccess
# JSON-parsing
data = JSON.parse(response.body)
# Hier kun je de data verwerken, bijvoorbeeld:
puts JSON.pretty_generate(data)
else
puts "Fout bij ophalen data: #{response.code} #{response.message}"
end
rescue StandardError => e
puts "Er is een fout opgetreden: #{e.message}"
end
```
**Wat moet je doen:**
- Vervang `'YOUR_API_KEY_HERE'` door je daadwerkelijke API-sleutel.
- Pas de `LATITUDE` en `LONGITUDE` aan naar de locatie waarvoor je de weersvoorspelling wilt.
- Het script haalt de gegevens op en toont ze in een leesbare JSON-indeling.
**Optioneel:** Je kunt de data verder verwerken, bijvoorbeeld alleen bepaalde velden tonen of opslaan in een bestand.
Heeft je nog verdere wensen of vragen?
provider: deepseek
model: deepseek-chat
Hier is een Ruby-script dat communiceert met de Weather API:
```ruby
require 'net/http'
require 'uri'
require 'json'
class WeatherAPI
BASE_URL = 'https://api.weather.com/v3/wx/forecast/daily/5day'.freeze
def initialize(api_key, bearer_token)
@api_key = api_key
@bearer_token = bearer_token
end
def fetch_weather_forecast(location_params)
# Vereiste parameters voor de API
params = {
apiKey: @api_key,
format: 'json',
language: 'nl-NL',
units: 'm'
}.merge(location_params)
uri = URI(BASE_URL)
uri.query = URI.encode_www_form(params)
request = Net::HTTP::Get.new(uri)
request['Authorization'] = "Bearer #{@bearer_token}"
request['Accept'] = 'application/json'
response = make_request(uri, request)
handle_response(response)
rescue StandardError => e
puts "Fout bij het ophalen van weergegevens: #{e.message}"
nil
end
private
def make_request(uri, request)
Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
end
def handle_response(response)
case response
when Net::HTTPSuccess
JSON.parse(response.body)
when Net::HTTPUnauthorized
raise 'Ongeldige authenticatie - controleer je API-sleutel en Bearer token'
when Net::HTTPNotFound
raise 'Weersvoorspelling niet gevonden voor de opgegeven locatie'
else
raise "API-fout: #{response.code} - #{response.message}"
end
end
end
# Gebruiksvoorbeeld:
begin
# Vervang met je eigen credentials
api_key = 'JOUW_API_SLEUTEL'
bearer_token = 'JOUW_BEARER_TOKEN'
# Locatie parameters (voorbeeld voor Amsterdam)
location_params = {
geocode: '52.3676,4.9041' # breedtegraad, lengtegraad
# of gebruik: postalKey: '1011AA:NL' voor postcode
}
weather_api = WeatherAPI.new(api_key, bearer_token)
forecast_data = weather_api.fetch_weather_forecast(location_params)
if forecast_data
puts "Weersvoorspelling succesvol opgehaald:"
puts JSON.pretty_generate(forecast_data)
# Voorbeeld van hoe je specifieke gegevens kunt extraheren:
if forecast_data['dayOfWeek']
puts "\nKomende 5 dagen voorspelling:"
forecast_data['dayOfWeek'].each_with_index do |day, index|
puts "#{day}: Max #{forecast_data['temperatureMax'][index]}°C, Min #{forecast_data['temperatureMin'][index]}°C"
end
end
else
puts 'Kon weersvoorspelling niet ophalen'
end
rescue StandardError => e
puts "Er is een fout opgetreden: #{e.message}"
end
```
**Benodigde gegevens om te verzenden:**
1. **API-sleutel** - Je persoonlijke API-key van Weather.com
2. **Bearer Token** - Jouw authenticatietoken
3. **Locatieparameters** - Bijvoorbeeld:
- `geocode`: breedtegraad,lengtegraad (bijv. '52.3676,4.9041')
- `postalKey`: postcode:landcode (bijv. '1011AA:NL')
- `icaoCode`: ICAO-luchthavencode
- `iataCode`: IATA-luchthavencode
**Te ontvangen gegevens (JSON):**
- `dayOfWeek`: Dagen van de week
- `narrative`: Weersbeschrijvingen
- `temperatureMax`: Maximumtemperaturen
- `temperatureMin`: Minimumtemperaturen
- `precipChance`: Neerslagkans
- `windSpeed`: Windsnelheid
- `humidity`: Luchtvochtigheid
- En vele andere weergerelateerde gegevens
**Installatievereisten:**
```bash
gem install json
```
**Foutafhandeling bevat:**
- HTTP-statuscode controle
- JSON parseerfouten
- Netwerkfouten
- Authenticatiefouten
- Timeout handling (kan worden toegevoegd met `read_timeout`)
- Duidelijke foutmeldingen
Vergeet niet je eigen API-sleutel en Bearer token te gebruiken van het Weather.com developer portal!