RESTful Services mit JAX-RS
Serviceorientierte Architekturen (SOA) auf Basis von Web Services stellen derzeit den Standard für die flexible Integration von Anwendungslandschaften dar. Zur Realisierung wird aber vielfach ein immenser Technologie-Mix gefordert. Dieser entpuppt sich häufig als schwer beherrschbar. Hingegen zeigt gerade das Internet, wie mittels der Basis-Technologie HTTP und den dahinter stehenden Architekturprinzipien riesige skalierbare Anwendungen erstellt werden können. Als Alternative für Web Services auf Basis von SOAP und WSDL kristallisierte sich REST (Representational State Transfer) als leichtgewichtige Alternative und Defacto-Standard heraus. Für den Java-Bereich hat Oracle mit der ›Java API for RESTful Web Services‹ (JAX-RS) einen Standard geschaffen, mit denen REST-basierte Anwendungen entwickelt werden können. Dieser Kurs stellt diese API praxisnah vor. JAX-RS ist Bestandteil der Jakarta EE, die RESTful Web Services können aber auch in beliebigen Servlet-Containern deployed werden. Der Kurs vermittelt einen Überblick der verschiedenen JAX-RS-Implementierungen. Auf das Deployment wird ebenso eingegangen wie auf unterschiedliche Client-Entwicklungen, um RESTful Web Services komfortabel zu nutzen. Die Teilnehmer lernen die JAX-RS-API im Detail kennen sowie die Prinzipien des Entwurfs von REST-basierten Anwendungen, wissen um die Möglichkeiten der Absicherung von Endpunkten und um die Bedeutung von REST in einer modernen SOA-Umgebung.
Inhalte des Seminars
Grundlagen der REST-Architekturen
- Identifikation von Ressourcen mit URN, URI, URL
- Populäre REST-Beispiele: Amazon S3, Google, Facebooks, usw.
- Web Service Technologien: SOAP vs. REST
- REST und HTTP als Applikationsprotokoll
- Zustandslosigkeit der Kommunikation als Design Prinzip
- Transaktionale und Read-Only Resourcen
- Read-Only Resourcen
- Web Application Description Language (WADL)
Java-Frameworks für REST-Anwendungen
- JAX-RS Standard (JSR 311)
- Referenzimplementierung (Jersey)
- Open Source Frameworks: Restlet, Apache CXF, RESTEasy
- Standalone-Server für Java SE ohne Web Container
- Installation von Jersey
- Deployment im Web Jakarta EE Web Container
REST-Clients
- Zugriff über Browser (Firefox-Plugins)
- Ajax-Clients (JavaScript)
- Verarbeiten von JSON- und XML-Nachrichten
- Client mit Jersey-API und Spring REST
- Testen von REST-Anwendungen (Junit)
JAX-RS API
- Zentrale Annotationen:
@Path
,@Get
,@Response
- Entwicklung von URI-Templates
- Definition der HTTP-Methoden
- Text, JSON, XML, CVS, RSS, Atom und binäre Repräsentationsformate
- JAX-RS Injizierungen von Request-Parametern und Defaultwerten
- MIME-Typen und Konvertierungen
- HTTP Content Negotiation (Language, Encoding, Content-Type)
- Entwicklung von ContentHandler
- Definition der HTTP-Response Header
- Service Provider mit @MessageBodyReader und –Write
Sichere REST-Aufrufe
- SSL und HTTPS
- Autorisierung mit HTTP-Basic und Digest
- Verwendung von OpenID und Oauth
- Datenverschlüsselungen und digitale Signaturen
Entwurfsmuster von REST-Anwendungen
- Was ist eine Ressourcenorientierte Architektur (ROA)?
- Abgrenzung von ROA, SOA und WOA
- Abbildung von CRUD-Operationen in REST
- Lose Kopplung durch Idempotenz und Zustandslosigkeit
- Ableitung von Ressourcen aus dem Domänmodell
- Datenmengen in Ressourcen zerlegen
- Transaktionen mit transaktionalen Ressourcen
- Navigierbare Ressource
- Hypermedia as the Engine of Application State (HATEOAS)
Cookbook für REST
- Session-Management und Cookies
- Effektives Caching mit Expired Headers oder Etags
- Lange Verbindungen mit Keep-Alive-Header
- Dokumentation von REST-Service
- Asynchrone Aufrufe und Callbacks
- Versionierung von REST-Services mit MIME-Types
- Web Application Descriptor Langauge (WADL) in Jersey nutzen
Integration in die Jakarta EE-Landschaft
- Zugriff auf EJBs
- REST in Spring Framework 3
- REST-Services und ESBs
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Die Fakten
- Empfohlene Schulungsdauer: 1 Tag, insgesamt 8 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Java-Enwickler, die die REST-Architektur kennen lernen und RESTful Web Services mit JAX-RS-API schreiben wollen.
- Vorkenntnisse: Java 2-Kenntnisse
- Seminar-Software: Als JAX-RS Implementierung kommt standardmäßig die Referenzimplementierung Jersey 1.6 zum Einsatz; andere Implementierungen werden vorgestellt.
Weiterführende Seminare
RESTfull Services spielen in Geschäftsprozessen eine zentrale Rolle, insbesondere beim Aufbau serviceorientierter Systeme, worin das Seminar Einführung in die Serviceorientierte Architektur (SOA) einen Einblick gibt. Die Ausführung von Geschäftsprozessen ist weiterhin ein wichtiger Teil von Java Enterprise Systemen. Der Kurs Java Platform, Enterprise Edition (Jakarta EE) gibt Einblicke in den Jakarta EE-Standard und Seminar Java Enterprise Architektur und Design Patterns gibt Best Practices, wie JAX-RS Dienste in einer Jakarta EE Mehrschichtenarchitektur optimal platziert werden. Als Alternative zu REST-Services sind klassischen SOAP-basieren Web-Services: Die Seminare Web-Services mit JAX-WS und Web-Services mit Apache Axis2 geht darauf genau ein. Um schlussendlich die übertragenen XML-Dokumente auf Objekte zu mappen ist JAXB die passende Technologie; das ist Schwerpunkt der Weiterbildung Objekt/XML-Mapping mit JAXB.