18
1 RESTful Web Services W3L AG [email protected] 2014

RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

1

RESTful Web Services

W3L AG [email protected]

2014

Page 2: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

2

Inhaltsverzeichnis

Teil 1: Was ist ein Web Service?Teil 2: Techniken zur Implementierung eines Web Services

SOAP und RESTTeil 3: REST und SOAP im VergleichTeil 4: Realisierung von RESTful Web Services in JavaTeil 5: Implementierung von RESTful Web Services mit JAX-RS: ServerTeil 6: Implementierung von RESTful Web Services mit JAX-RS: ClientTeil 7: WADL

zurück

Page 3: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

3

Was ist ein Web Service?

per Netzwerk bereitgestellte Softwareanwendungzum Abruf eines über das Web verfügbaren Datenangebotsermöglicht automatische Informationsbeschaffung ohne User-Eingriff

AnwendungsbereicheB2B – Abwicklung von Geschäftsprozessen über Unternehmensgrenzen hinwegZugang zu GeodatenBereitstellung externer FunktionenÜbertragung von TÜV-Seminaren zur Certqua

KonsumentClient

AnbieterServer

1. Request

2. Response

Page 4: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

4

LinuxWindows

Was ist ein Web Service?

Vorteilenicht an Übertragungsprotokoll gebundenInteroperabilität

NachteilePerformanceSicherheitsaspekteexterne Bibliotheken

KonsumentC#-Client

AnbieterJava-Server

HTTP-Request

HTTP-Response

Page 5: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

5

Netzwerkprotokoll zum DatenaustauschXML-Format

Aufbau einer SOAP-NachrichtXML-Element Envelope mit Header und Body

Funktionsweise

Techniken zur Implementierung eines Web Services

SOAP

Konsument Anbieter

Broker

veröffentlichensuchenauf Dienstverweisen

anfragen

antworten

Page 6: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

6

<?xml version="1.0"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">

<s:Body><m:MitarbeiterInDatenbank xmlns:m="http://www.db.de/soap">

1574</m:MitarbeiterInDatenbank>

</s:Body></s:Envelope>

BeispielAnfrage an Datenbank nach Mitarbeiter mit angegebener ID

Auswertung der Nachricht durch den ServerstartElement(„MitarbeiterInDatenbank“, […])

Antwort des Servers mit einer Soap-Nachricht

Techniken zur Implementierung eines Web Services

SOAP

Page 7: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

7

fünf Prinzipien für REST-DiensteZustandslosigkeitAdressierbarkeit

RepräsentationenOperationenVerwendung von Hypermedia

Techniken zur Implementierung eines Web Services

REST – Representational State Transfer

http://www.beispiel.de/rest-servicehttp://www.beispiel.de/rest-service/artikel/1http://www.beispiel.de/rest-service/kunde/532

Page 8: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

8

REST und SOAP im Vergleich

RESTgenerisches Interface

GET, POST, PUT, DELETEVerwendung von Standards

URI, HTTP, XML, …mehrere Nachrichtenformate

XML, JSON, …WADL zur Beschreibungdirekt adressierbare Ressourcen

SOAPkein generisches Interface

Methoden selbst definierenSchaffen eigener Standards

WSDL, UDDI, …festgelegtes Nachrichtenformat

XMLWSDL zur BeschreibungAdressierung per Dispatcher

Page 9: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

9

REST und SOAP im Vergleich

Suche nach Produkt „Web Services“ in Online-ShopURI Web-Anwendung/Web Service (SOAP):

http://www.online-shop.de/angebot

URI REST-Anwendung:http://www.online-shop.de/angebot/artikel/549

Zugriff auf Ressource von verschiedenen Clientsspezielle Anwendung liest aus Ressource für sie relevante Daten und verwertet sieper Browser lässt sich eine HTML-Repräsentation der Ressource zur Einsicht/Überwachung öffnen

Vorteile von REST - Beispiele

Page 10: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

10

REST und SOAP im Vergleich

Beispiel: Mitarbeiter-Suche in einer Datenbank

rest

Page 11: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

11

Realisierung von RESTful Web Services in Java

Java API for RESTful Web Services

Veröffentlichungen in der Java Platform Enterprise EditionJAX-RS 1.1 in Java EE6JAX-RS 2.0 in Java EE7

Referenzimplementierungen für JAX-RSRestletRESTEasyApache WinkJersey

Implementierung von Spring

JAX-RS

Page 12: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

12

Implementierung von RESTful Web Services mit JAX-RS

Tomcat-Server hinzufügendynamisches Web Projekt erstellenWeb Projekt dem Server hinzufügen

Klasse der übergebenen Objekte erzeugenPerson.javaAnnotation zur XML-Ausgabeparameterloser Konstruktor

Ressourcen-Klasse erzeugenRestRessource.javaBibliothek „jsr311-api-1.1.jar“ importierenMethoden implementieren und annotieren

Server

Page 13: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

13

Implementierung von RESTful Web Services mit JAX-RS

Annotationen@Path: Pfad, über den auf eine Ressource zugegriffen werden kann@GET, @POST: HTTP-Methoden@Produces: den Media-Typen der Ausgabe festlegen;z.B. XML, HTML, Text@Consumes: den Media-Typen der Eingabe festlegen@PathParam: in der URL übergebene Parameter einlesen@QueryParam: in der URL übergebene Parameter in Form von Name-Wert-Paaren einlesen@FormParam: per Formular übergebene Parameter einlesen

Server

Page 14: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

14

<servlet><servlet-name>RESTService</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param><param-name>jersey.config.server.provider.packages</param-name><param-value>restserver</param-value>

</init-param><load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping><servlet-name>RESTService</servlet-name><url-pattern>/rest/*</url-pattern>

</servlet-mapping>

Implementierung von RESTful Web Services mit JAX-RS

Ressourcen registrierenEinbinden der Bibliothek jaxrs-ri (Jersey)Konfiguration von web.xml

Server

Page 15: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

15

Implementierung von RESTful Web Services mit JAX-RS

JSPGET-Operationen können durch JavaScript angestoßen werden

@PathParamPOST-Operationen können per Formular angestoßen werden

@FormParamClient muss die Klasse Person nicht kennen

Java-ClientPaket javax.ws.rs.client (seit Java EE7)Einbinden der Bibliothek jaxrs-ri.2.5.1 (Jersey)Client- und WebTarget-Objekt erzeugen

Client

Page 16: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

16

Web Application Description Language

automatisch generierte WADL-Dateiim Beispiel: http://localhost:8082/RestServer/rest/application.wadl

Tool wadl2javageneriert aus der WADL-Datei Java-KlassenKonsoleneingabe:

wadl2java –o C:\Users\...\REST –p de.wadl2javahttp://localhost:8082/RestServer/rest/application.wadl

wadl2java

Page 17: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

17

Quellen und Verweise

Orientation in Objects: REST Web Serviceshttp://www.oio.de/public/xml/rest-webservices.htm

JAXenter: Rest – Der bessere Web Service?http://jaxenter.de/artikel/REST-bessere-Web-Service-167838

Galileo Computing: RESTful und SOAP Web-Serviceshttp://openbook.galileocomputing.de/java7/1507_13_001.html

Jersey: RESTful Web Services in Javahttp://jersey.java.net/

Page 18: RESTful Web Services - W3L · Teil 1: Was ist ein Web Service? Teil 2: Techniken zur Implementierung eines Web Services SOAP und REST Teil 3: REST und SOAP im Vergleich Teil 4: Realisierung

In Zusammenarbeit mit der Fachhochschule Dortmund bieten wir

zwei Online-Studiengänge B.Sc. Web- und MedieninformatikB.Sc. Wirtschaftsinformatik

und 7 Weiterbildungen im IT-Bereich an.

W3L-AkademieInhouse-Schulungen

Wir bieten Inhouse-Schulungen und Beratung durch unsere IT-Experten und –Berater.

SchulungsthemenSoftwarearchitektur (OOD)

Requirements Engineering (OOA)

Nebenläufige & verteilte

Programmierung

Gerne konzipieren wir auch eine individuelle Schulung zu Ihren Fragestellungen.

Flexibel online lernen und studieren!

Sprechen Sie uns an!Tel. 0231/61 804-0, [email protected]

Besuchen Sie unsere Akademie!http://Akademie.W3L.de