Eine Schnittstelle ist ein definierter Kommunikationspunkt zwischen zwei Systemen oder Softwarekomponenten, der Datenaustausch nach klar vereinbarten Regeln ermöglicht.
Was bedeutet das?
Der Begriff Schnittstelle stammt aus der Ingenieurtechnik und bezeichnet buchstäblich den Punkt, an dem zwei Dinge aufeinandertreffen und verbunden werden. In der Softwareentwicklung beschreibt eine Schnittstelle, wie zwei Systeme miteinander kommunizieren, ohne dass das eine System die innere Funktionsweise des anderen kennen muss. Was „hinein geht“ und was „heraus kommt“, wird fest definiert. Die konkrete Umsetzung dahinter bleibt verborgen.
Die bekannteste Form der technischen Schnittstelle ist die API (Application Programming Interface). Über eine API kann ein System Daten von einem anderen abfragen oder Aktionen auslösen. Eine REST API kommuniziert dabei über HTTP-Requests und liefert meist JSON-formatierte Antworten zurück. WordPress besitzt seit Version 4.7 eine vollständige REST API, über die externe Anwendungen Beiträge, Seiten, Nutzer und Medien abrufen oder bearbeiten können.
Innerhalb von WordPress gibt es ein weiteres, sehr leistungsfähiges Schnittstellen-System: das Hook-System. Über do_action() (Aktionen) und apply_filters() (Filter) können Plugins und Themes an bestimmten Stellen im WordPress-Code eingreifen, ohne den Kern zu verändern. Dieses Prinzip ist eine interne Schnittstelle zwischen dem WordPress-Kern und den Erweiterungen. Es ermöglicht, dass tausende Plugins friedlich nebeneinander existieren, solange sie dieselben definierten Punkte nutzen.
Beispiel aus der Praxis
Ein WooCommerce-Shop verbindet sich über eine Zahlungs-Schnittstelle mit PayPal oder Klarna. Bei Zahlungseingang schickt der Zahlungsanbieter einen sogenannten Webhook, also eine automatische Benachrichtigung via HTTP-Request, an WordPress. WooCommerce empfängt diesen Request über seine Schnittstelle, prüft die Signatur zur Sicherheit und markiert die Bestellung als bezahlt. Der Shop-Betreiber muss davon nichts wissen, die Schnittstelle erledigt das vollautomatisch im Hintergrund.
Ein weiteres Beispiel: Ein DATEV-kompatibles Buchhaltungs-Plugin liest Bestelldaten aus WooCommerce über eine interne WordPress-Schnittstelle aus und übergibt sie im richtigen Format an die Finanzbuchhaltungssoftware. Beide Systeme sprechen dabei nur über die definierte Schnittstelle miteinander.
Tipp aus der Praxis
Schnittstellen zu externen Diensten sollten immer mit einer Fehlerbehandlung abgesichert werden. Was passiert, wenn der externe Service nicht erreichbar ist? Bricht die gesamte Seite ab oder gibt es eine Fallback-Lösung? In WordPress können Sie mit wp_remote_get() und wp_remote_post() HTTP-Anfragen absenden und mit is_wp_error() prüfen, ob die Verbindung erfolgreich war. Timeouts und Verbindungsfehler sollten sauber protokolliert werden, damit Sie im Fehlerfall schnell die Ursache finden.