fb
API Management 5 Minuten

APIs sind der beste Freund eines Architekten

Hans Bot
Hans Bot
Senior Solution Architect
Blog 11 1
Scrollen
Blog-11-1

Wir stehen an der Schwelle zum Zeitalter des massiv verbreiteten Computings. Natürlich sind wir auf Zehenspitzen in das verteilte Computing eingestiegen, seit wir mit CORBA und Client Server begonnen haben. Doch heutzutage werden die Dinge immer schneller. Im Ernst. Milliarden von mobilen Geräten sind mit dem Internet verbunden und tätigen Geschäfte. Ein zunehmender Anteil von Autos und Lastwagen ist immer vernetzt. Die Dinge werden miteinander verbunden. Aber noch wichtiger ist, dass die Unternehmen bei der Vernetzung immer intelligenter werden. Die Integration von Unternehmen beginnt zu wachsen.

Eine enge Zusammenarbeit über das Value Web hinweg eröffnet neue Möglichkeiten, gemeinsam Geschäfte zu machen. Von Co-Marketing über Co-Kreation bis hin zu Co-Produktion und Co-Service. Integrierte Betreuung, vielleicht. Oder gemeinsame Operationen. Und vernetzte Systeme sind die Haupttriebkraft des Wandels. Doch wie solltest du deine IT gestalten, um dies vollständig zu ermöglichen? Wie kannst du intelligentere Arbeitsweisen ermöglichen? Wie kannst du die Vorteile der massiv verteilten Datenverarbeitung nutzen? Nun, hier ist das Wie.

API Erstes Design

Wer liebt APIs nicht? Vom Konzept her sind sie sehr einfach. Dank der offenen API-Spezifikation, die in der Industrie weit verbreitet ist, ist es super einfach geworden, die Anwendungsschnittstellen prägnant, konsistent und klar zu definieren und zu dokumentieren. Außerdem gibt es großartige Tools, um APIs zu veröffentlichen, zu entdecken und zu testen. Damit ist die erste Voraussetzung für eine erfolgreiche Implementierung von massiv verteilten Systemen abgedeckt. Außerdem gibt es zusätzliche Tools, um den Zugang zu den APIs sicher zu verwalten – noch eine weitere Voraussetzung, die der WSO2 API Manager gut abdeckt.

Nun, das ist ein großartiger Einstieg, aber wohin bringt uns das? Denke einfach mal darüber nach. Wenn der Entwickler sein Verständnis für verteilte Systeme auf der API-Ebene beginnt, wie er sollte, sollte dann nicht auch das API-Design der Ausgangspunkt für den Architekten sein? Selbstverständlich sollte es das! Einen besseren Weg, ein verteiltes System zu entwerfen, als über seine Schnittstellen, gibt es nicht. Wenn du deine Schnittstellen durchdenkst, wirst du über alle Komponenten nachdenken, und wie sie Informationen austauschen. Was für einen Input erwarten sie, und welchen Output werden sie generieren? Was sind die Fehlerbedingungen, die du erwartest? Du grenzt implizit Verantwortlichkeiten ab und identifizierst deine Ressourcen. Das ist Architektur.

Häufig hast du bereits Datenquellen und Services zur Verfügung, mit denen du beginnen kannst. Wenn du die richtige Technologie verwendest, kannst du deine APIs schon in den frühesten Stadien ihrer Entwicklung zum Leben erwecken. Das ist sehr wirkungsvoll. Alternativ kannst du deine APIs mit einem einfachen Inline-Skript prototypisieren. Lass uns mit den ersten Tests beginnen.

Sicherheit Erstes Design

Aber warte, da ist noch mehr. In der heutigen Welt muss man mit Sicherheit im Hinterkopf planen. Deine Services können vielleicht Informationen frei austauschen, aber das ist nicht immer das, was benötigt wird. Informationen können sensibel oder auf eine bestimmte Nutzung beschränkt sein. Es kann Einschränkungen der Privatsphäre geben. Oder geistiges Eigentum. Geschäftsgeheimnisse, vielleicht.

Noch einmal: APIs sind deine Freunde. Es empfiehlt sich, den Zugang zu APIs auf bestimmte Entwickler zu beschränken. Im Sicherheitsdenken ist der Zugang verboten, es sei denn, er wird ausdrücklich gewährt. Wem gewährst du also Zugang zu deiner API? Es gibt keinen besseren Zeitpunkt, um deine Zielgruppe zu bestimmen, als direkt, wenn du deine API definierst. Einen Schritt weiter musst du über den Zugang auf der Methodenebene nachdenken. Möglicherweise sind bestimmte Methoden auf bestimmte Entwickler beschränkt. Oder vielleicht musst du den Zugang auf bestimmte Gruppen von Runtime-Benutzern beschränken. Auf jeden Fall ist es eine gute Praxis, immer einen Anwendungsbereich für eine Methode zu definieren. Auch hier gilt wieder, auch wenn der Geltungsbereich ‚jeder‘ ist, muss es eine explizite Entscheidung sein. Für einen tieferen Einblick in die API-Sicherheit, schaue dir bitte unseren Blog über inhärent sichere APIs oder weitere Informationen über eine API-Sicherheitsplattform an.

Gelegentlich ist die Autorisierungslogik feinkörniger. Das ist dann der Fall, wenn der Zugriff auf eine Methode bedingt ist. Es kann verschiedene Arten von Bedingungen geben, die du hier durchsetzen musst. So zum Beispiel: Du darfst eine Transaktion durchführen, vorausgesetzt, du wurdest stark authentifiziert. Oder vorausgesetzt, du greifst von einer bestimmten Geographie aus zu. Das sind Fälle von adaptiver Authentifizierung. Als Alternative kann auch eine gewisse Geschäftslogik involviert sein. Du darfst alkoholische Getränke bestellen, aber nur, wenn du über 18 Jahre alt bist. Du darfst auf eine medizinische Akte zugreifen, aber nur, wenn es sich um die Akte deines Patienten handelt. Zum Glück kannst du mit dem WSO2-API-Manager intelligente Richtlinien wie diese direkt auf der Schnittstellenebene durchsetzen.

Ein starkes Design bietet starke Sicherheit, und APIs helfen dabei.

Von der Theorie zur Praxis

Inzwischen solltest du nicht nur überzeugt, sondern auch super motiviert sein, dein erstes API-Design zu starten. Dann brauchst du aber auch die Technologie, mit der du spielen kannst. Weil du höchstwahrscheinlich nicht in einem Elfenbeinturm designst, wirst du mit Leuten innerhalb und außerhalb deines Teams zusammenarbeiten wollen. Dafür brauchst du noch mehr Technologie. Und wenn du das Glück hast, selbst Zugang zu geeigneter Technologie zu haben, ist das wahrscheinlich nicht bei jedem in deinem ausgedehnten Team der Fall.

Einer der vielen großen Vorteile von Yenlo Connext ist es, allen Beteiligten eine umfassende Integrations- und Kollaborationstechnologie zu bieten. Wir wissen, dass Technologie ein Wegbereiter und kein Hindernis sein sollte. Mit Connext steht dir die Plattform zur Verfügung, um mit dem Design deiner APIs, einschließlich ihrer Richtlinien, zu beginnen und sie vom ersten Tag an zu testen, dank des großartigen WSO2-API-Managers. Das Identity- und Entitlement-Management ist vollständig im WSO2 Identity Server integriert. Mit ein paar Klicks im WSO2 Developer Studio und der Hilfe des WSO2 ESB kannst du deine APIs zum Leben erwecken. Es gibt noch so viel mehr zur Auswahl. Wir haben auch ein Wiki und eine Projekt-Tracking-Lösung eingebaut, um eine agile Arbeitsweise zu unterstützen.

Wusstest du, dass du SDKs für deine APIs mit einem Knopfdruck generieren kannst? Yenlo Connext unterstützt eine Vielzahl von Zielsprachen und Frameworks, wie Android, Angular, Go, Python, Perl und Swift. Du kannst sogar einen Server-Stub unter anderem in ASP.Net, Java, Spring, NodeJS und Ruby generieren.

Auf diese Weise können wir deine Integrationsbemühungen fördern. Egal wie massiv du deine Systeme verteilst. Wie massiv du deine Systeme auch betreiben möchtest. Teste uns. Kontaktiere uns für mehr Informationen.