Im Kontext von APIs kommt derzeit keiner an REST (Representational State Transfer) vorbei. REST gilt als leichtgewichtige, skalierbare und schnell erlernbare Alternative zu SOAP, die sich die vorhandene Infrastruktur des WWW zunutze macht. In der Praxis hat aber auch REST seine Schwächen. So ist gutes API-Design häufig eine Herausforderung. Für mobile Anwendungen ist REST zu starr und geht nicht effizient genug mit Bandbreite um.
Im Vortrag werden Stärken und Schwächen von REST aufgezeigt und mit GraphQL eine Alternative speziell für den mobilen Kontext vorgestellt.
Präsentation zum Thema Datenbankoptimierung: Effektiver Einsatz von EHCache, etc. "Ein typisches Szenario bei Enterprise-Applications ist folgendes: mehrere Application-Server greifen auf eine Datenbank zu. Schnell wird dabei der Zugriff auf die Datenbank zum Performance-Engpass. Im Vortrag wird das Caching von Query-Ergebnissen auf den Application-Servern mit Hilfe der JPA erklärt."
Web-APIs sind das aktuelle Trend-Thema in den IT-Abteilungen. Als primärer Kommunikationspartner für Fat, Mobil und Web-Clients sind Web-APIs das Rückgrat moderner verteilter Anwendungen. Sind synchrone Requests via REST und GraphQL oder Push-Notifications via Server-Sent Events und WebSocket die bessere Wahl? Welches Austauschformat sollte man wählen? Wie sieht gutes „Error Handling“ aus? Und was ist mit Themen wie Security und Versionierung? Lebensnahe Beispiele, jede Menge Best-Practices und viel Code, der nahtlos in eigene Projekte übernommen werden kann, bilden die Grundlage für die Session.
PNP4Nagios ist eine Erweiterung für Nagios, die es auf einfache Weise ermöglicht, die von den Nagios Plugins gelieferten Performancedaten in RRD Datenbanken zu speichern und für die spätere Trend Analysen aufzubereiten.
Dabei wird Wert auf eine einfache Installation und geringen Pflegeaufwand gelegt.
Im Workshop haben die Teilnehmer die Möglichkeit, die Installation und Konfiguration von PNP4Nagios an einer eigenen virtuellen Maschine durchzuführen.
Am Beispiel von check_oracle_health werden - während des Workshops - Templates zum Darstellen der Performance Werte erstellt. Somit haben die Teilnehmer die Möglichkeit, Daten von check_oracle_health zu visualisieren und die Möglichkeiten der PNP Templates kennen zu lernen.
Die Daten von check_oracle_health wie Tablespace Usage, Cache-Hits, Redolog-IO u.ä. werden simuliert, so dass während des Workshops auch ohne Oracle Server realistische Graphen erzeugt werden können.
17 years after Fieldings paper REST is at its peak. Every interface has to use REST. But there are many problems in using and designing REST APIs. This sessions describes the problems and encourages to use besides REST other means of communication.
REST APIs liegen im Trend und werden daher in vielen Projekten eingesetzt. REST besitzt Schwächen, die bei falschem Einsatz schnell sichtbar werden. Dieser Vortrag zeigt die Probleme und Schächen von REST und beschreibt die Alternativen: GraphQL, JSON Path und GRPC.
Präsentation zum Thema Datenbankoptimierung: Effektiver Einsatz von EHCache, etc. "Ein typisches Szenario bei Enterprise-Applications ist folgendes: mehrere Application-Server greifen auf eine Datenbank zu. Schnell wird dabei der Zugriff auf die Datenbank zum Performance-Engpass. Im Vortrag wird das Caching von Query-Ergebnissen auf den Application-Servern mit Hilfe der JPA erklärt."
Web-APIs sind das aktuelle Trend-Thema in den IT-Abteilungen. Als primärer Kommunikationspartner für Fat, Mobil und Web-Clients sind Web-APIs das Rückgrat moderner verteilter Anwendungen. Sind synchrone Requests via REST und GraphQL oder Push-Notifications via Server-Sent Events und WebSocket die bessere Wahl? Welches Austauschformat sollte man wählen? Wie sieht gutes „Error Handling“ aus? Und was ist mit Themen wie Security und Versionierung? Lebensnahe Beispiele, jede Menge Best-Practices und viel Code, der nahtlos in eigene Projekte übernommen werden kann, bilden die Grundlage für die Session.
PNP4Nagios ist eine Erweiterung für Nagios, die es auf einfache Weise ermöglicht, die von den Nagios Plugins gelieferten Performancedaten in RRD Datenbanken zu speichern und für die spätere Trend Analysen aufzubereiten.
Dabei wird Wert auf eine einfache Installation und geringen Pflegeaufwand gelegt.
Im Workshop haben die Teilnehmer die Möglichkeit, die Installation und Konfiguration von PNP4Nagios an einer eigenen virtuellen Maschine durchzuführen.
Am Beispiel von check_oracle_health werden - während des Workshops - Templates zum Darstellen der Performance Werte erstellt. Somit haben die Teilnehmer die Möglichkeit, Daten von check_oracle_health zu visualisieren und die Möglichkeiten der PNP Templates kennen zu lernen.
Die Daten von check_oracle_health wie Tablespace Usage, Cache-Hits, Redolog-IO u.ä. werden simuliert, so dass während des Workshops auch ohne Oracle Server realistische Graphen erzeugt werden können.
17 years after Fieldings paper REST is at its peak. Every interface has to use REST. But there are many problems in using and designing REST APIs. This sessions describes the problems and encourages to use besides REST other means of communication.
REST APIs liegen im Trend und werden daher in vielen Projekten eingesetzt. REST besitzt Schwächen, die bei falschem Einsatz schnell sichtbar werden. Dieser Vortrag zeigt die Probleme und Schächen von REST und beschreibt die Alternativen: GraphQL, JSON Path und GRPC.
This presentation was held on the DOAG 2018 conference in Nuremberg. It describes how to handle REST Webservice with Web Source Moduls inside APEX 18. Examples like using fantasydata and jira as webservices endpoints are described.
OSMC 2012 | End2End-Monitoring von Webapplikationen mit SAHI by Simon MeggleNETWAYS
Bei modernen Web-Anwendungen sollten nicht nur die am Ergebnis beteiligten Komponenten aus technischer Sicht, sondern auch das Ergebnis aus der Warte des Anwenders überwacht werden.
Mit dem Open-Source-Tool SAHI lassen sich umfangreiche End2End-Checks für Web2.0-Applikationen schnell und komfortabel aufzeichnen und automatisiert abspielen. In diesem Vortrag wird gezeigt, wie SAHI-Tests in ein Nagios-kompatibles Monitoring-System integriert werden können. Ergänzt werden die Checks durch Zeitmessungen für Teilschritte, die Visualisierung der Laufzeiten in RRD-Graphen sowie die automatische Erstellung von Screenshots zur Fehleranalyse.
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Christian Wenz
Kommunikation mit JavaScript war lange Zeit sehr überschaubar: HTTP-Anfragen waren dank Ajax möglich, aber auch nur an den Ursprungsserver und mit weiteren Einschränkungen. Dies hat sich mittlerweile geändert: JavaScript-Code kann jetzt auch mit fremden Browsertabs und Servern reden, sofern diese mögen; ebenfalls ist eine bidirektionale Kommunikation anstelle des altbackenen Pull-Modells möglich. Auch Zugriff auf Kamera und Mikrofon sind (nach Nutzerbestätigung) möglich. Diese Session zeigt zahlreiche bekannte und weniger bekannte Kommunikationsmöglichkeiten mit JavaScript und HTML5 auf und beleuchtet Vor- und Nachteile aus dem Projektalltag.
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
Folien mit Einführung und Usecases für eine NCA-Session. Wir beginnen mit einer Symfony Forms-Applikation für eine simple Event-Verwaltung und wandeln sie sukzessive um zu einer React-SPA, die eine Symony-API verwendet.
Hier das Repository dafür: https://github.com/nevercodealone/ncaevent-remote-maerz-react
Wie kann ich die Browser Tools zum Auffinden von Fehlern und Schwachstellen in meinem Sourcecode benutzen? Dieser Talk stellt die wichtigsten Features vor.
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
Diese Slides zeigen, wie man Performanceprobleme von Microsoft SharePoint Server 2013 vorbeugt, analysiert und behebt. Die Slides sind im Rahmen einer Veranstalltung der SharePoint Community Mittelland Schweiz entstanden.
Django ist ein in Python programmiertes Framework, dass die schnelle Entwicklung von Web-Applikationen ermöglicht. Dabei wird Wert auf sauberen Code und die Wiederverwendbarkeit von einzelnen Komponenten gelegt.
Der Vortrag wurde beim Webmontag Leipzig im März 2010 gehalten.
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...Cristina Vidu
Agenda
Die vorgesehene Agenda beinhaltet die nachfolgenden Themen:
Einführung & Vorstellung des Robotic Enterprise Framework (REF) und von Zustandsautomaten (State Machines);
Anwendungsbeispiele und Erfahrungen;
Mögliche Optimierungen, eigene REF-Vorlagen, Pros & Cons;
REF und State Machines vs. reguläre Workflows (Flowcharts/Sequenzen);
Governance, Testing & Workflow-Analyzer;
Erfahrungen und Vergleich mit weiteren RPA-Tools;
Abschluss, Q&A.
Wir freuen uns auf einen spannenden Austausch und darauf, gemeinsam ein weiteres Meetup der RPA-Community in der deutschsprachigen Schweiz durchzuführen.
Api Platform: the ultimate API PlatformStefan Adolf
Unzählige Tools in allen Sprachen unterstützen einen dabei, solide APIs zu bauen, aber die Symfony-basierte api-platform sticht hervor: mit ihr erstellt man OpenAPI-kompatible REST-Schnittstellen nur mit Hilfe von einfachen Code-Annotationen. Stefan präsentiert zunächst die Basisinstallation des Frameworks und stellt seine wichtigsten Features vor, um dann tiefer in produktive Details einzusteigen. Darunter, wie man Client-Code und SPA-Frontends automatisch generiert, datenbankbasierte Akzeptanztests in Behat und Mink schreibt, sich per JWT authentifiziert, Custom Endpoints erstellt und von Doctrine ORM unabhängige Datenquellen nutzt. Schließlich demonstriert er, wie sich die produktive Vue.js-SPA seines Projekts via Apollo-Client mit automatisch generierten GraphQL-Endpunkten verbindet, ohne einen einzigen Resolver schreiben zu müssen und wie das brandneue Mercure-Protokoll dafür sorgt, dass das Frontend automatisch mitbekommt, wenn sich Daten auf dem Server ändern.
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...OPEN KNOWLEDGE GmbH
Speaker: Sebastian Reiners
Seit Java EE 7 stehen auch Enterprise-Entwicklern Server-Sent Events und WebSockets in standardisierter Form zur Verfügung. Höchste Zeit also, sich diese andere Art der Kommunikation im Web einmal näher anzusehen. Was sind Server-Sent Events und WebSockets überhaupt, was sind ihre Vorteile und wo bieten sich sinnvolle Anwendungsbereiche?
Im Rahmen der Vorstellung der unterschiedlichen Ansätze werden praktische Erfahrungen und Fallstricke, insbesondere im Zusammenspiel mit JSF und CDI veranschaulicht, sowie ein erstes Resümee gezogen.
Im #Neuland gibt es noch heute stark in die Jahre gekommene Host- und Service-Monitoring-Lösungen, die zu den unliebsamen Langzeitbaustellen vieler Teams und Unternehmen gehören. Wer kennt es nicht, dass regelmäßige „False-Positive“-Alarme sich in Form von E-Mails oder SMS lästig bekannt machen, dass Webinterfaces schnell an ihre Grenzen stoßen, dass komplexe und benutzerfreundliche Graphen generiert werden sollen oder dass das Monitoring-Konstrukt nicht mit der großen Zahl an hippen neuen Docker-basierten Services/Checks zurechtkommt. Ganz zu schweigen von den lückenhaften oder fehlenden Programmierschnittstellen vieler Monitoring-Monolithen. In diesem Vortrag möchten wir euch eine auf Prometheus und Kubernetes basierende Musterlösung vorstellen, die eine Webapplikation über verschiedene Metriken hinweg überwacht und das DevOps-Betriebsteam zum richtigen Zeitpunkt auf konkrete Probleme aufmerksam macht.
Event: DevOpsCon, 06.12.2016
Speaker: Christoph Petrausch, inovex GmbH
Mehr Tech-Vorträge: https://www.inovex.de/de/content-pool/vortraege/
Agenda
Die vorgesehene Agenda beinhaltet die nachfolgenden Themen:
Einführung & Vorstellung des Robotic Enterprise Framework (REF) und von Zustandsautomaten (State Machines);
Anwendungsbeispiele und Erfahrungen;
Mögliche Optimierungen, eigene REF-Vorlagen, Pros & Cons;
REF und State Machines vs. reguläre Workflows (Flowcharts/Sequenzen);
Governance, Testing & Workflow-Analyzer;
Erfahrungen und Vergleich mit weiteren RPA-Tools;
Abschluss, Q&A.
Wir freuen uns auf einen spannenden Austausch und darauf, gemeinsam ein weiteres Meetup der RPA-Community in der deutschsprachigen Schweiz durchzuführen.
Fragen & Anregungen
Hast Du im Vorfeld zu der Veranstaltung Fragen oder Anregungen? Kontaktiere gerne Roman Tobler (Co-CEO & Inhaber @Routinuum GmbH), Chapter Leader des UiPath Chapters "Zürich". Routinuum ist UiPath Implementierungspartner und spezialisiert auf den Bereich RPA und verwandten Technologien.
Presentation at the OGD2011 conference taking place in Vienna on the 16th of June 2011 as well as at the LOD2 CKAn workshop on 15th of June 2011: CKAN by Friedrich Lindenberg, Open Knowledge Foundation.
(License: CC-BY 3.0)
This presentation was held on the DOAG 2018 conference in Nuremberg. It describes how to handle REST Webservice with Web Source Moduls inside APEX 18. Examples like using fantasydata and jira as webservices endpoints are described.
OSMC 2012 | End2End-Monitoring von Webapplikationen mit SAHI by Simon MeggleNETWAYS
Bei modernen Web-Anwendungen sollten nicht nur die am Ergebnis beteiligten Komponenten aus technischer Sicht, sondern auch das Ergebnis aus der Warte des Anwenders überwacht werden.
Mit dem Open-Source-Tool SAHI lassen sich umfangreiche End2End-Checks für Web2.0-Applikationen schnell und komfortabel aufzeichnen und automatisiert abspielen. In diesem Vortrag wird gezeigt, wie SAHI-Tests in ein Nagios-kompatibles Monitoring-System integriert werden können. Ergänzt werden die Checks durch Zeitmessungen für Teilschritte, die Visualisierung der Laufzeiten in RRD-Graphen sowie die automatische Erstellung von Screenshots zur Fehleranalyse.
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Christian Wenz
Kommunikation mit JavaScript war lange Zeit sehr überschaubar: HTTP-Anfragen waren dank Ajax möglich, aber auch nur an den Ursprungsserver und mit weiteren Einschränkungen. Dies hat sich mittlerweile geändert: JavaScript-Code kann jetzt auch mit fremden Browsertabs und Servern reden, sofern diese mögen; ebenfalls ist eine bidirektionale Kommunikation anstelle des altbackenen Pull-Modells möglich. Auch Zugriff auf Kamera und Mikrofon sind (nach Nutzerbestätigung) möglich. Diese Session zeigt zahlreiche bekannte und weniger bekannte Kommunikationsmöglichkeiten mit JavaScript und HTML5 auf und beleuchtet Vor- und Nachteile aus dem Projektalltag.
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
Folien mit Einführung und Usecases für eine NCA-Session. Wir beginnen mit einer Symfony Forms-Applikation für eine simple Event-Verwaltung und wandeln sie sukzessive um zu einer React-SPA, die eine Symony-API verwendet.
Hier das Repository dafür: https://github.com/nevercodealone/ncaevent-remote-maerz-react
Wie kann ich die Browser Tools zum Auffinden von Fehlern und Schwachstellen in meinem Sourcecode benutzen? Dieser Talk stellt die wichtigsten Features vor.
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
Diese Slides zeigen, wie man Performanceprobleme von Microsoft SharePoint Server 2013 vorbeugt, analysiert und behebt. Die Slides sind im Rahmen einer Veranstalltung der SharePoint Community Mittelland Schweiz entstanden.
Django ist ein in Python programmiertes Framework, dass die schnelle Entwicklung von Web-Applikationen ermöglicht. Dabei wird Wert auf sauberen Code und die Wiederverwendbarkeit von einzelnen Komponenten gelegt.
Der Vortrag wurde beim Webmontag Leipzig im März 2010 gehalten.
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...Cristina Vidu
Agenda
Die vorgesehene Agenda beinhaltet die nachfolgenden Themen:
Einführung & Vorstellung des Robotic Enterprise Framework (REF) und von Zustandsautomaten (State Machines);
Anwendungsbeispiele und Erfahrungen;
Mögliche Optimierungen, eigene REF-Vorlagen, Pros & Cons;
REF und State Machines vs. reguläre Workflows (Flowcharts/Sequenzen);
Governance, Testing & Workflow-Analyzer;
Erfahrungen und Vergleich mit weiteren RPA-Tools;
Abschluss, Q&A.
Wir freuen uns auf einen spannenden Austausch und darauf, gemeinsam ein weiteres Meetup der RPA-Community in der deutschsprachigen Schweiz durchzuführen.
Api Platform: the ultimate API PlatformStefan Adolf
Unzählige Tools in allen Sprachen unterstützen einen dabei, solide APIs zu bauen, aber die Symfony-basierte api-platform sticht hervor: mit ihr erstellt man OpenAPI-kompatible REST-Schnittstellen nur mit Hilfe von einfachen Code-Annotationen. Stefan präsentiert zunächst die Basisinstallation des Frameworks und stellt seine wichtigsten Features vor, um dann tiefer in produktive Details einzusteigen. Darunter, wie man Client-Code und SPA-Frontends automatisch generiert, datenbankbasierte Akzeptanztests in Behat und Mink schreibt, sich per JWT authentifiziert, Custom Endpoints erstellt und von Doctrine ORM unabhängige Datenquellen nutzt. Schließlich demonstriert er, wie sich die produktive Vue.js-SPA seines Projekts via Apollo-Client mit automatisch generierten GraphQL-Endpunkten verbindet, ohne einen einzigen Resolver schreiben zu müssen und wie das brandneue Mercure-Protokoll dafür sorgt, dass das Frontend automatisch mitbekommt, wenn sich Daten auf dem Server ändern.
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...OPEN KNOWLEDGE GmbH
Speaker: Sebastian Reiners
Seit Java EE 7 stehen auch Enterprise-Entwicklern Server-Sent Events und WebSockets in standardisierter Form zur Verfügung. Höchste Zeit also, sich diese andere Art der Kommunikation im Web einmal näher anzusehen. Was sind Server-Sent Events und WebSockets überhaupt, was sind ihre Vorteile und wo bieten sich sinnvolle Anwendungsbereiche?
Im Rahmen der Vorstellung der unterschiedlichen Ansätze werden praktische Erfahrungen und Fallstricke, insbesondere im Zusammenspiel mit JSF und CDI veranschaulicht, sowie ein erstes Resümee gezogen.
Im #Neuland gibt es noch heute stark in die Jahre gekommene Host- und Service-Monitoring-Lösungen, die zu den unliebsamen Langzeitbaustellen vieler Teams und Unternehmen gehören. Wer kennt es nicht, dass regelmäßige „False-Positive“-Alarme sich in Form von E-Mails oder SMS lästig bekannt machen, dass Webinterfaces schnell an ihre Grenzen stoßen, dass komplexe und benutzerfreundliche Graphen generiert werden sollen oder dass das Monitoring-Konstrukt nicht mit der großen Zahl an hippen neuen Docker-basierten Services/Checks zurechtkommt. Ganz zu schweigen von den lückenhaften oder fehlenden Programmierschnittstellen vieler Monitoring-Monolithen. In diesem Vortrag möchten wir euch eine auf Prometheus und Kubernetes basierende Musterlösung vorstellen, die eine Webapplikation über verschiedene Metriken hinweg überwacht und das DevOps-Betriebsteam zum richtigen Zeitpunkt auf konkrete Probleme aufmerksam macht.
Event: DevOpsCon, 06.12.2016
Speaker: Christoph Petrausch, inovex GmbH
Mehr Tech-Vorträge: https://www.inovex.de/de/content-pool/vortraege/
Agenda
Die vorgesehene Agenda beinhaltet die nachfolgenden Themen:
Einführung & Vorstellung des Robotic Enterprise Framework (REF) und von Zustandsautomaten (State Machines);
Anwendungsbeispiele und Erfahrungen;
Mögliche Optimierungen, eigene REF-Vorlagen, Pros & Cons;
REF und State Machines vs. reguläre Workflows (Flowcharts/Sequenzen);
Governance, Testing & Workflow-Analyzer;
Erfahrungen und Vergleich mit weiteren RPA-Tools;
Abschluss, Q&A.
Wir freuen uns auf einen spannenden Austausch und darauf, gemeinsam ein weiteres Meetup der RPA-Community in der deutschsprachigen Schweiz durchzuführen.
Fragen & Anregungen
Hast Du im Vorfeld zu der Veranstaltung Fragen oder Anregungen? Kontaktiere gerne Roman Tobler (Co-CEO & Inhaber @Routinuum GmbH), Chapter Leader des UiPath Chapters "Zürich". Routinuum ist UiPath Implementierungspartner und spezialisiert auf den Bereich RPA und verwandten Technologien.
Presentation at the OGD2011 conference taking place in Vienna on the 16th of June 2011 as well as at the LOD2 CKAn workshop on 15th of June 2011: CKAN by Friedrich Lindenberg, Open Knowledge Foundation.
(License: CC-BY 3.0)
5. JUL
1995
Das erste Buch wird
online verkauft.
Amazon
JUL
1995
Erste nennenswerte
REST-API
del.icio.us API
DEZ
2003
JAN
2000
Erste SaaS-Lösung,
erste kommerzielle
SOAP-API
salesforce.com
NOV
2000
XML over HTTP API,
2003 kam SOAP-API
Ebay API
Roy Fielding
beschreibt REST in
seiner Doktorarbeit.
„Architektur des
Webs“
2000
11. DoubleClick Publisher API: getAdUnitsByStatement() looking for the root AdUnit
https://developers.google.com/doubleclick-publishers/docs/soap_xml
12. DoubleClick Publisher API: getAdUnitsByStatement() looking for the root AdUnit
https://developers.google.com/doubleclick-publishers/docs/soap_xml
13. Representational State
Transfer
• Architekturkonzept, kein Standard
• 2000 Roy Fielding
• Macht sich vorhandene www-Standards zu Nutze (HTTP/URI)
• Ressourcen-orientiert: Anwendungszustand und Funktionalität
repräsentiert durch eindeutige URI
• Aktionen: HTTP-Verben (GET, POST, PUT, DELETE, HEAD, OPTIONS,
CRUD)
• Transport: HTTP(S)
• Darstellung: JSON, XML, HTML, CSV, etc.
14. HTTP-Verben
Verb Bedeutung Idemp. Cache
GET /users/1 Lesen einer Ressource Ja Ja
POST /users Anlegen einer Ressource oder auslösen eines
Datenverarbeitungsprozesses
Nein
Nein
PUT /users/1
Vollständiges Update einer Ressource
Ja Nein
PATCH /users/1 Partielles Update einer Ressource Nein Nein
DELETE /users/1 Löschen einer Ressource Ja Nein
HEAD /users/1 Metadaten einer Ressource Ja Ja
OPTIONS /users/1 Mögliche Aktionen einer Ressource abfragen Ja Ja
15. HTTP-Status
Code Bedeutung
200 OK
201 Ressource created
202 Accepted, processing not completed
204 No content
400 Bad request
401 Unauthorized
404 Not found
405 Method not allowed
500 Internal server error
18. Vergleich (2000)
XML-RPC RESTSOAP
+ Standard
+ Sehr Simpel
- Hohes
Übertragungsvolumen
durch XML
- Fester Transport (HTTP)
+ Standard
+ Transport-agnostisch
+ Type checking/Contract
(WSDL/XSD)
+ Enterprise-Features:
ACID-Complicance,
WS-Security
- Komplexe Architektur
- Keine Sensibilität für
Remote Aufrufe (8 fallacies)
- Hohes
Übertragungsvolumen
+ Simpel
+ Viele Austauschformate
(Menschen-lesbar)
+ Verwendung von HTTP-
Tools (Caches, Analyse
etc.)
+ Übertragungsvolumen um
bis zu Faktor 10 geringer
als bei SOAP
+ Lose Kopplung
+ Link-Integration
- folgt…
19.
20. 3 Alternativen (15 min)
GraphQL, JSON-RPC.
2
REST unter der Lupe (15 min)
Probleme mit REST
Einführung (5 min)
Kennenlernen, Zurück ins Jahr 2000, Basics
1
24. Response-Codes
• 41 Response-Codes (15 Seiten) in HTTP/1.1-Spezifikation
https://tools.ietf.org/html/rfc7231#page-62
• Individuelle Interpretationen durch API-Anbieter
• Update einer Ressource:
200 OK oder 201 Created? Kein 2XX Updated vorhanden.
• In Browsern verschiedene Interpretationen von Response-
Codes:
• z.B. 307 Temporary redirect)
• In Browsern lediglich 200 und 500 konsistent interpretiert.
26. Standards
Qual der Wahl:
• Microsoft API Guidelines
https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md
• White House Web API Standards & weitere
https://github.com/WhiteHouse/api-standards
27. IDL / DDL
• Interface Description Languages/ API Description Languages
• swagger.io
• apiblueprint.org
• raml.org
• avro.apache.org
• Data Description Languages
• jsonapi.org
• json-schema.org
• github.com/kevinswiber/siren
• jsonpatch.com (Payload für PATCH-Requests)
• avro.apache.org
28. Mehr Diskussionen über REST als über Problemdomäne
• Qual der Wahl
• Welchen Standard
• REST/HATEOAS oder Pragmatic REST
• Description-Languages: Swagger, JSON Schema & Co
• Kleinigkeiten: z.B. Query-String
• Pro Aktion
• Status-Codes
• Verben
• Sub-Ressourcen
API-Design
There’s more than one way
29. Beispiel
Wie lösche ich eine registrierte Domain zum Laufzeitende?
Wie storniere ich nun diese Löschung?
33. 3 Alternativen (15 min)
GraphQL, JSON-RPC…
2
REST unter der Lupe (15 min)
Vor- und Nachteile von REST
Einführung (5 min)
Kennenlernen, Geschichte, Basics
1
34. TRAFFIC/REQUEST
MINIMIERUNG
TRANSPORT
AGNOSTIC
STANDARD
01
Anzahl der nötigen Anfragen
reduzieren, nur das liefern, was auch
wirklich benötigt wird.
02
In Zeiten von Microservices und
Queues sollte HTTP nicht das
einzige Protokoll sein.
03
Viele Köcher verderben den Brei. Wir
sind reif für einen neunen Standard.
35. 2018!
• Anforderung ändern sich schneller
• Vielfältige Clients (Smartphone, Smart Home, Smart City,
IoT, [..])
• Mobile Nutzung (2016 erstmals mehr Nutzer mit
Mobilgeräten online als mit Desktop)
• Anforderungen Mobile/IoT/Microservice-Architekturen
• Effiziente Bandbreitennutzung
• Energieeffizienz
36. GraphQL
GraphQL was our opportunity to rethink mobile app
data-fetching from the perspective of product
designers and developers. It moved the focus of
development to the client apps, where designers and
developers spend their time and attention. GraphQL,
a data query language.
Lee Byron
37. GraphQL
• Von Facebook in 2012 intern entwickelt, 2015 öffentlich
• Single Endpoint (vgl. XML-RPC/SOAP)
• Lesen: Queries
• Schreiben: Mutations
• Ein Request für alle Daten, die ein Client benötigt
• Validation by Design
• Integrierte SDL/Dokumentation
39. What you want is what you get
• Es werden nur die Daten ausgeliefert, die der Client anfragt
• Dadurch reduziertes Datenvolumen
• Reduzierung von Anfragen durch die Möglichkeit verknüpfte
Ressourcen mit abzufragen
• Reduzierung von Anfragen durch Zusammenfassung von
Anfragen/Daten aus mehreren Quellen
• Anfragen beginnen bei einen Start-Element
• Im Root Query-Object ist eine Liste aller Start-Elemente
enthalten
48. Änderung
• Explizit unabhängig von Abfragen
• Schreiboperationen sollen nur über Mutations durchgeführt werden
• Aufbau
• mutationName: Welche Änderung soll durchgeführt werden?
• input: Für Änderung notwendige Daten
• payload: Rückgabe vom Server, z.B. geändertes Objekt
https://developer.github.com/v4/guides/forming-calls/#about-mutations
51. - Error-Handling nur in
Anwendungsschicht
- Lesen und Schreiben unabhängig,
Bezug fehlt (s. Ressource bei REST)
- Kein Caching über HTTP möglich
- Schlechte Predictability (z.B. wie
lösche ich etwas)
- Absicherung der Infrastruktur vor
Risiken komplexer Anfragen
- Rate Limits und Abrechnungsmodell
muss ggf. neu
- Select * komplex
+ Reduzierung von Anfragen
(kein n+1 Problem)
+ Kein Over-Fetching
+ Validation by Design
+ Integrierte SDL
+ Dokumentation
+ Anfragen kombiniert in einem Request
+ Query Planning/ Optimierung
+ Parallel Execution
+ Request Budgeting (z.B. Sekunden)
+ Error-Handling einfacher (aber per
Default nicht maschinenlesbar
+ Für einfache Anwendung BaaS (z.B.
graph.cool)
53. AND, OR, Filterung
• GraphQL ist näher an RPC als an einer Datenbank-
Abfragesprache.
• GraphQL sollte die Problemdomäne und nicht die
Persistenzschicht modellieren. (Outside-In)
• Für jeden Knoten kann über Argumente spezifische
Filter und Abfrage-Funktionalität realisiert werden.
https://github.com/graphql/graphql-js/issues/585#issuecomment-262402544