software1987 Tech-Blog

4Jun/110

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:

.tar.gz, .zip

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:

  1. Einbinden der Library:
    require "INWX/DomainRobot"
  2. Festlegen der Login-Daten und der Login-Addresse (hier: das OTE Testsystem)
  3. Instanziieren des DomainRobots (letzter Parameter gibt an ob eine sichere Verbindung verwendet werden soll):
    domainRobot = INWX::DomainRobot.new(addr,user,pass,lang,true)
  4. Festlegen des Objekts und der Methode (siehe xmlrpc.pdf im INWX Download) mit Parametern.
  5. Ausführen des XMLRPC-Requests:
    domainRobot.call(object, method, params)

Bei Fragen zur Bibliothek stehe ich gerne zur Verfügung!