© AlenaPo/Shutterstock.com
Services über APIs einbinden und eigene APIs anbieten

Nach allen Seiten offen


Apps für Smartphones und Tablets bieten heute oft weiterführende Informationen. Beispiele sind das Wetter auf einem Buchungsportal für Hotels oder die Webseite der Gemeinde, die Ankunfts- und Abfahrtszeit der Bahn anzeigt. Dieser Beitrag gibt einen Überblick über interessante APIs. Und Ihr eigener Service? Den können Sie auch für andere Entwickler und deren Apps bereitstellen. Der Einstieg ist recht einfach.

Apps auf einem mobilen Gerät können selbst nur begrenzte Funktionalität bereitstellen. Sämtliche Ressourcen, von der Rechenkapazität bis zum Speicher, sind begrenzt. Ebenso verfügt man als Entwickler üblicherweise auch nicht über die notwendigen Daten. Es wurden schon zwei Beispiele genannt, die Anzeige des Wetters und die Fahrtzeiten des regionalen Stadtverkehrs. Dafür ortet die App zunächst den Standort des Nutzers, um dann passende Informationen kontextbezogen anbieten zu können. All diese Informationen und Funktionen werden von Clouddiensten über APIs zur Verfügung gestellt. In einigen Apps sind diese Funktionen ein netter Gimmick, in anderen kann ohne die Nutzung von APIs die Kernfunktion nicht vernünftig umgesetzt werden. Hier können wir zum Beispiel eine Shopping-App anführen, die über einen Dienstleister gängige Zahlungsmethoden anbietet. Es ist auch denkbar, dass man selbst eine interessante Funktion erstellt hat bzw. einen hilfreichen Service anbieten kann und diesen über ein eigenes API anbieten möchte, sodass andere Entwickler ihn nutzen. Im Folgenden geben wir einen praktischen Überblick über die Nutzung von APIs und zeigen gleichzeitig, dass das Hosten des eigenen Service in der Cloud heute kein Hexenwerk mehr sein muss.

Microservices als Basis

Die Verwendung von APIs führt zu einer anderen Applikationsarchitektur: die Aufteilung der Funktionen auf kleine, voneinander unabhängige Dienste, die sogenannte Microservices-Architektur. Diese Services können dabei flexibel durch unterschiedlichste Anwendungssysteme, die nicht nur auf das eigene Unternehmen beschränkt sind, benutzt werden. Die Integration erfolgt üblicherweise über RESTful HTTP, d. h. über eine einheitliche Schnittstelle. Die eigene Anwendung wird damit gewissermaßen zum Service, der sich wiederum aus der Nutzung anderer Dienste zusammensetzt. Wie muss man sich das vorstellen? Werfen Sie dazu einen Blick in Abbildung 1.

bochkor_api_1.tif_fmt1.jpgAbb. 1: Die Microservices-Architektur kombiniert unterschiedliche Dienste zu einem neuen Service [1]

Eine Vielzahl von externen Services wird sinnvoll kombiniert und ggf. um weitere eigene Funktionen angereichert. Auf diese Weise muss man sich nur um seine Kernfunktion kümmern und kann zusätzliche Funktionen der App einbinden. Für die Nutzung eines Service spielt dessen technische Umsetzung keine Rolle. Verschiedene Betriebssysteme und die Bereitstellung auf gänzlich unterschiedlichen Technologien sind keine Hindernisse. Einzelne Services können ausgetauscht werden oder werden unabhängig vom Gesamtsystem aktualisiert. Sofern man Services von Drittanbietern nutzt, gibt man gewissermaßen die gesamte Verantwortung für den Betrieb und die künftige Entwicklung ab. Nutzt man beispielsweise in einer App das API eines Bezahldiensts, muss man sich lediglich mit der Nutzung des API über REST vertraut machen. Der Dienst wird nicht nur von uns verwendet, sondern von vielen weiteren Apps und Webseiten. Die Weiterentwicklung des Diensts steht vollständig in der Verantwortung des Anbieters. Sofern sich die Schnittstelle nicht ändert, haben Anpassungen am Dienst keine Auswirkungen auf unsere Software. Sind wir – aus welchen Gründen auch immer – nicht mehr mit den Leistungen des Diensts zufrieden, können wir ihn gegen einen anderen austauschen. Anpassungen sind nur an den Stellen des Quelltexts notwendig, die mit dem Dienst kommunizieren. Der wichtigste Grund zur Nutzung eines API besteht darin, dass man auf diese Weise den Zugang zu Diensten, Daten und Services bekommt, die man als Entwickler nicht selbst programmieren kann. Wir können keinen Bezahldienst im Stil von PayPal selbst einrichten, das Wetter von vielen tausend Orten aktuell bereitstellen oder Nachrichten aus unzähligen Quellen der ganzen Welt eigenständig abrufen. Mit anderen Worten: APIs eröffnen uns Entwicklern und unseren Apps und Webapplikationen den Zugang zu ganz neuen Möglichkeiten.

Natürlich hat die Nutzung von (öffentlichen) APIs auch einen Nachteil: Wir werden in gewisser Weise vom entsprechenden Dienst abhängig. Ändert der Anbieter das Serviceangebot in technischer Hinsicht, müssen wir die Änderungen nachvollziehen. Passt er die Preise oder das Abrechnungsmodell bzw. die Nutzungsbedingungen an, haben wir nur die Wahl, sie zu akzeptieren oder uns nach einem anderen Dienstleister umzusehen.

Dennoch: Der Einsatz von APIs ist die Voraussetzung für leistungsfähige Apps und interessante Funktionen. Erst dadurch sind wir in der Lage, bestimmte Funktionen sinnvoll zu kombinieren und den Nutzern Mehrwerte zu bieten.

Service für Entwickler

Viele Internet- und Clouddienstleister stellen Ihre Services für die erweiterte Nutzung zur Verfügung. Entwickler sind damit in der Lage, über ein API die Funktionen aus der eigenen App zu verwenden. Dazu gibt es meist einen Developerbereich mit der Möglichkeit, sich zu registrieren, und eine Dokumentation, wie das spezifische API des Anbieters zu nutzen ist. Neben der technischen Verwendung sind auch die Fragen der Bezahlung und der weiteren Nutzungsbedingungen zu klären. Sehen wir uns das an einigen Beispielen an:

  • PayPal: Unter [2] findet man den Zugang zum Developerportal des Zahlungsdienstleisters PayPal. Aufgrund der hohen Reichweite und der guten Akzeptanz von PayPal kann es sinnvoll sein, diesen Dienst für die Abwicklung der eigenen Kundenzahlungen zu nutzen. Unter dem Punkt APIs finden Sie zum Beispiel die Beschreibung der generischen RESTful APIs zur Nutzung von PayPal aus der eigenen App oder Webapplikation heraus.

  • Dropbox: Ebenso umfangreich sind die Angebote, die der cloudbasierte Speicherdienst Dropbox [3] Entwicklern macht. Es finden sich neben der Dokumentation des Webinterface auf Basis von REST/HTTP auch Hinweise zur direkten Nutzung aus einzelnen Programmiersprachen. Dabei wird meist auf Open-Source-Bibliotheken verwiesen, die die Schnittstellenkonventionen von Dropbox kapseln und in der jeweiligen Zielsprache wie .NET/C#, Java, Swift usw. bereitstellen. In diesen Fällen müssen Sie dann nicht mehr die RESTful APIs von Dropbox nutzen, sondern können ein angepasstes Software Development Kit (SDK) verwenden, das auf die Belange Ihrer Programmiersprache ausgerichtet ist. Über den Developerzugang kann man die Nutzung von Dropbox in die eigene App integrieren und darüber beispielsweise Dokumente oder Multimediadateien direkt in die Cloud hochladen.

  • Twitter: Auch der Kurznachrichtendienst Twitter ermöglicht die Einbindung in eigene Apps und Webseiten durch ein generisches RESTful API. Man findet unter dem Menüpunkt Docs | API Reference Index die Beschreibung des API [4]. Damit sind Sie in der Lag...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang