REST Web Services mit JAX-RS

Schulung / Webinar

Mit dem Java API for RESTful Web Services können mit Java Server und Clients erstellt werden, die auf dem Architekturstil REST basieren. JAX-RS 2.0 wurde mit JEE 7 ein Bestandteil von Oracles Enterprise Edition, ist mit der Jersey Implementation aber auch einfach standalone einsetzbar.

Representational State Transfer ist ein Architekturstil, der auf den Technologien des Webs basiert. Die Eigenschaften des Webs:

  • Adressierbarkeit mit URLs
  • Verlinkung
  • Zustandslosigkeit
werden mit REST genutzt, um einfache, skalierbare und leistungsfähige Schnittstellen für Anwendungen zu schaffen. REST Web Services sind einfach zu erstellen und zu nutzen. Dieser Kurs behandelt neben den Grundlagen fortgeschrittene Aspekte und diskutiert Architekturalternativen.

Einführung in REST Web Services

  • Die Architektur des Webs
  • SOAP versus REST Web Services
  • ROA im Vergleich mit WOA, SOA und MOA
  • Plain old XML POX

Der Architekturstil REST

  • Die Client/Server Architektur
  • Schichtenmodell
  • Stateless Server
  • Optimierung mit Caches
  • Skalierbarkeit und Ausfallsicherheit
  • Evolution und Versionierung von Schnittstellen mit REST
  • Asynchrone Dienste über synchrones HTTP

Das HTTP Protokoll

  • HTTP Request und Response
  • Die wichtigsten HTTP Header Felder
  • Wann werden die HTTP Methoden GET, POST, PUT und DELETE eingesetzt und wie unterscheiden sie sich
  • Parameter kodieren im Query-String
  • Status Codes und ihre Bedeutung
  • Auf Umwegen mit Redirects
  • Wiederverwendung von Verbindungen mit dem keep alive Feature
  • Content Negotiation: Wie der Client mit dem Server über den Inhalt verhandelt
  • Sessions und Cookies
  • Kompression von HTTP-Verbindungen mit GZIP

Anwendungsentwicklung mit REST

  • Objekte und Services als Resourcen zugänglich machen
  • Verlinken von Resourcen
  • URL Design
  • URI Templates
  • Matrix, Query, Path, Cookie und Header Parameter
  • Sub Resourcen

JAX-RS Implementierungen und Tools

  • JAX-RS 1.1 vs 2.0
  • Jersey
  • Apache CXF
  • JAX-RS im JEE Application Server am Beispiel vom Glassfish
  • Einbinden von Erweiterungsmodulen
  • Implementierung des HATEOAS Musters
  • Prüfung von Parametern mit Bean Validation

Web Application Description Language WADL

  • Beschreibung von Web Anwendungen und Resourcen mit WADL
  • WADL nach Java Mapping
  • Erzeugung von Code aus WADL mit wadl2java
  • Erzeugen von Java, .NET, PHP und Ruby Code mit Google REST Compile
  • Erzeugen von WADL mit Google REST Describe

Swagger

  • Beschreibung von REST Schnittstellen mit Swagger
  • Verteilte Schnittstellen
  • SwaggerUI als Oberfläche zur Dokumentation und zum Testen
  • Generierung von Swagger aus Annotationen

Erstellen von REST Clients mit Java

  • Das Client API
  • Erstellen von Requests mit dem Builder Werkzeug

REST mit Java

  • JSR 311 Java API vor RESTful Web Services

Deployment

  • Standalone in der Java SE Virtual Machine
  • Standalone, basierend auf Spring Boot
  • Als Web Anwendung
  • Im JEE Server

Single Page Webapps und REST

  • Zugriff auf einen REST Web Service von einer Webseite mit JavaScript und dem XmlHttpRequest Objekt
  • Das Nachrichtenformat JSON

Dauer

2 Tage

Zielgruppe

Software Architekten, Projektleiter, Web Entwickler, Anwendungsentwickler

Vorkenntnisse

Grundlagen der Programmierung mit Java

Ziele

  • Nutzen Sie die Vorteile von REST für Ihre Anwendungsentwicklung

Verwendete Softwarewerkzeuge

Wir verwenden die folgenden Tools für unsere öffentlichen Schulungen: Netbeans, Jersey, Firefox Browser, diverse Firefox Plugins, RESTGate, sqlrest . Für exklusive onsite Kurse können wir auch die folgenden Werkzeuge einsetzen: Apache CXF, Groovy.

Kursunterlage

Handouts aller im Kurs präsentierten Folien

Infos zu Firmenseminaren

TerminOrtTrainerPreis

* Gesamtpreis pro Teilnehmer inkl. Kursmaterial und Tagesverpflegung zzgl. Mehrwertsteuer

** Gesamtpreis pro Teilnehmer inkl. Kursmaterial zzgl. Mehrwertsteuer

und das sagen die Teilnehmer:
  • Lockere Atmosphäre. Eingehen auf Fragen.
  • Sehr netter, kompetenter Trainer, der hervorragend auf Fragen einging!
  • Sehr guter, einfacher Einstieg in die Materie
  • Gute Praxisbeispiele