InterNetworX XMLRPC API für Ruby
Der Domain Registrar InterNetworX (kurz: inwx) stellt eine XMLRPC API zur Verfügung mit der man automatisiert Domains/Handles anlegen, editieren oder löschen kann. Zudem kann man noch Einträge im Nameserver bearbeiten.
INWX stellt für Entwickler eine API-Beschreibung, sowie Beispiel Implementierungen für PHP und Java zur Verfügung (link). Der Entwickler Philipp Klaus hat in seinem Blog zusätzlich eine Python-Portierung der API-Implementierung vorgestellt.
Im letzten Jahr habe ich für ein Ruby on Rails Projekt eine Ruby Implementierung geschrieben die ich nun hier vorstellen möchte.
Voraussetzungen
- Ruby 1.9.x (Abhängigkeit zu XMLRPC/Client)
Installation
Der Quellcode wird auf Github gehostet. Daher gibt es zwei Wege um an den Quellcode zu gelangen:
via git:
git clone git://github.com/halfdan/ruby-inwx-xmlrpc.git
via direktem Download:
Benutzung
Die INWX-API stellt eine Reihe an Objekten zur Verfügung auf denen sich Methoden aufrufen lassen. Im folgenden Beispiel wird auf dem Objekt "domain" die Methode "info" mit einem Parameter ":domain" aufgerufen, als Rückgabe liefert die API entsprechend Informationen über die angegebene Domain.
require "INWX/DomainRobot"
require "YAML"
addr = "api.ote.domrobot.com"
# addr = "api.domrobot.com"
user = "your_username"
pass = "your_password"
lang = "en"
domainRobot = INWX::DomainRobot.new(addr, user, pass, lang, true)
object = "domain"
method = "info"
params = { :domain => "software1987.de" }
result = domainRobot.call(object, method, params)
puts YAML::dump(result)
Die Library lässt sich also sehr einfach verwenden. Hier noch einmal eine schrittweise Erklärung:
- Einbinden der Library:
require "INWX/DomainRobot"
- Festlegen der Login-Daten und der Login-Addresse (hier: das OTE Testsystem)
- Instanziieren des DomainRobots (letzter Parameter gibt an ob eine sichere Verbindung verwendet werden soll):
domainRobot = INWX::DomainRobot.new(addr,user,pass,lang,true)
- Festlegen des Objekts und der Methode (siehe xmlrpc.pdf im INWX Download) mit Parametern.
- Ausführen des XMLRPC-Requests:
domainRobot.call(object, method, params)
Bei Fragen zur Bibliothek stehe ich gerne zur Verfügung!












