slogan3

Help me schrijven van Ruby code voor API integratie en data uitwisseling

description

Met deze prompt kun je snel en betrouwbaar Ruby code genereren om externe API's te integreren, waardoor je tijd bespaart en fouten voorkomt. De code bevat best practices voor verzoeken, response verwerking en foutafhandeling, wat robuuste applicaties mogelijk maakt.

prompt

Help me met het schrijven van Ruby code om te communiceren met een externe API: <beschrijf de API en het doel van de integratie>. Geef aan welke API endpoints ik moet ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hieronder vind je een voorbeeld van Ruby-code om te communiceren met een externe API voor het ophalen van productinformatie, inclusief het GET-verzoek naar `/weather?city=Amsterdam`. Ik gebruik hiervoor de `net/http` bibliotheek, die standaard in Ruby zit. ```ruby require 'net/http' require 'uri' require 'json' # API basis URL API_BASE_URL = 'https://api.example.com' # vervang dit door de echte API URL # Endpoint endpoint = "/weather?city=Amsterdam" uri = URI.parse(API_BASE_URL + endpoint) begin # Maak een HTTP GET-verzoek http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == "https") request = Net::HTTP::Get.new(uri.request_uri) # Voeg headers toe als dat nodig is (bijvoorbeeld API-sleutel) # request['Authorization'] = 'Bearer YOUR_API_TOKEN' # Verstuur het verzoek response = http.request(request) # Controleer de HTTP-status case response when Net::HTTPSuccess # Verwerk de JSON-respons data = JSON.parse(response.body) puts "Weer in Amsterdam:" puts "Temperatuur: #{data['temperature']}°C" puts "Beschrijving: #{data['description']}" # Voeg meer verwerking toe afhankelijk van de API-respons else # Foutafhandeling puts "Fout bij ophalen van gegevens: #{response.code} #{response.message}" end rescue StandardError => e # Algemene foutafhandeling puts "Er is een fout opgetreden: #{e.message}" end ``` ### Samenvatting - **API Endpoint:** GET `/weather?city=Amsterdam` - **Basis URL:** Vervang `'https://api.example.com'` door de echte API URL. - **Foutafhandeling:** Inclusief checks op HTTP-status en rescue voor netwerk- of parsingfouten. - **Verwerking:** JSON-respons wordt geparset en de gegevens worden getoond. Wil je dit uitbreiden voor het ophalen van productinformatie of andere endpoints? Laat het gerust weten!
provider: deepseek
model: deepseek-chat
Ik zie dat je Ruby code wilt voor een API-communicatie voor productinformatie, maar je vermeldt een weer-API endpoint. Ik zal je helpen met beide scenario's: ## Voor productinformatie (algemeen voorbeeld): ```ruby require 'net/http' require 'json' require 'uri' class ProductAPI BASE_URL = 'https://api.jouwwebshop.com' def self.get_product_info(product_id) uri = URI("#{BASE_URL}/products/#{product_id}") begin response = Net::HTTP.get_response(uri) case response when Net::HTTPSuccess product_data = JSON.parse(response.body) puts "Product gevonden: #{product_data['name']}" product_data when Net::HTTPNotFound puts "Product niet gevonden (404)" nil when Net::HTTPClientError puts "Client error: #{response.code}" nil when Net::HTTPServerError puts "Server error: #{response.code}" nil else puts "Onverwachte response: #{response.code}" nil end rescue SocketError => e puts "Netwerkfout: #{e.message}" nil rescue JSON::ParserError => e puts "Ongeldige JSON response: #{e.message}" nil rescue StandardError => e puts "Onverwachte fout: #{e.message}" nil end end end # Gebruik: # product = ProductAPI.get_product_info(123) ``` ## Voor weather API (zoals je vermeldde): ```ruby require 'net/http' require 'json' require 'uri' class WeatherAPI BASE_URL = 'https://api.weerservice.com' def self.get_weather(city) uri = URI("#{BASE_URL}/weather") uri.query = URI.encode_www_form({ city: city }) begin response = Net::HTTP.get_response(uri) if response.is_a?(Net::HTTPSuccess) weather_data = JSON.parse(response.body) puts "Weer in #{city}: #{weather_data['temperature']}°C" weather_data else puts "Fout bij ophalen weer: #{response.code} - #{response.message}" nil end rescue => e puts "Fout: #{e.message}" nil end end end # Gebruik: # weather = WeatherAPI.get_weather('Amsterdam') ``` ## Belangrijke API endpoints voor webshop: Typische endpoints die je nodig zou kunnen hebben: - `GET /products` - Alle producten ophalen - `GET /products/{id}` - Specifiek product - `GET /categories` - Productcategorieën - `GET /products?category={id}` - Producten per categorie ## Aanbevelingen: 1. Gebruik de `httparty` gem voor betere HTTP handling: ```ruby gem install httparty ``` 2. Implementeer rate limiting 3. Gebruik environment variables voor API keys 4. Voeg caching toe voor betere performance Welke specifieke API gebruik je voor je webshop? Dan kan ik meer gerichte code geven.