SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
REST
TechTalk


Doreen Seider
DLR-SC, Köln, 15.01.2009




                                                         Folie 1
                           REST TechTalk > D. Seider > 15.01.2009
Gliederung


  Theorie
       REST – Was? Was nicht? Woher? Wohin?

  Praxis
       REST-basierte Applikationen
       JSR 311 (JAX-RS)
       Referenzimplementierung Jersey


  Zusammenfassung




                                                                            Folie 2
                                              REST TechTalk > D. Seider > 15.01.2009
REST – Theorie
Was ist REST?

  REST ist eine Alternative für SOAP Web Services ...?
  REST ist HTTP-basiert ...?
  REST ist ein Hype ...?
  ...?


  REST ist ein Architekturkonzept.
      (REST vs. SOAP)




                                                                                       Folie 3
                                                         REST TechTalk > D. Seider > 15.01.2009
REST
Definition

   REpresentational State Transfer
   Geprägt 2000 in Dissertation von Roy Fielding
       “Architectural Styles and the Design of Network-based Software
       Architectures”


   Grundprinzipien
       Zustandslose Client-Server-Kommunikation
       Eindeutig identifizierbare Ressourcen
       Einheitliche Schnittstelle
       Repräsentation(en) der Ressourcen
       Hypermedia



                                                                                        Folie 4
                                                          REST TechTalk > D. Seider > 15.01.2009
REST
Architektur des WWW

  Basisstandards: HTTP, URL, HTML
  Erfüllung der REST-Grundprinzipien

  = REST-basiert




                                   Quelle: Wikipedia


                                                                                     Folie 5
                                                       REST TechTalk > D. Seider > 15.01.2009
REST
Grundprinzipien am Beispiel WWW

  Zustandslose Client-Server-Kommunikation




                                             Server




   Clients

                                                                                    Folie 6
                                                      REST TechTalk > D. Seider > 15.01.2009
REST
Grundprinzipien am Beispiel WWW

  Eindeutig identifizierbare Ressourcen
       Uniform Resource Locator (URL)

    http://boox.com/sciencefiction/thehitchhikersguidetothegalaxy
    http://boox.com/orders/2009/01
    http://boox.com/customers/42
    http://boox.com/sales/2000-2009




                                                                                         Folie 7
                                                           REST TechTalk > D. Seider > 15.01.2009
REST
Grundprinzipien am Beispiel WWW

  Einheitliche Schnittstelle
       HTTP-Request-Methoden
              GET – Abrufen
              PUT – Update oder Erstellen
              POST – Erstellen oder Hinzufügen
              DELETE – Löschen
              (HEAD, TRACE, OPTIONS, CONNECT)

       [GET, PUT, POST, DELETE, ...] http://boox.com/orders/2009/01
       [GET, PUT, POST, DELETE, ...] http://boox.com/customers/42
       ...



                                                                                    Folie 8
                                                      REST TechTalk > D. Seider > 15.01.2009
REST
Grundprinzipien am Beispiel WWW

  Einheitliche Schnittstelle




                   Quelle: http://www.infoq.com/articles/rest-introduction


                                                                                                           Folie 9
                                                                             REST TechTalk > D. Seider > 15.01.2009
REST
Grundprinzipien am Beispiel WWW

  Repräsentation(en) von Ressourcen
       Felder Accept und Content-Type im HTTP-Header
       Client-spezifische Repräsentationen
       Z.B. Browser: HTML

    HTTP/1.1 200 OK
    Server: Apache/1.3.29 (Unix) PHP/4.3.4
    Content-Length: 483
    Content-Language: de
    Content-Type: text/html
    Connection: close




                                                                                   Folie 10
                                                       REST TechTalk > D. Seider > 15.01.2009
REST
Grundprinzipien am Beispiel WWW

  Hypermedia
      Verknüpfung identifizierbarer Ressourcen (WWWeb)
      URL von Ressourcen in Repräsentation von anderen Ressourcen
      Siehe HTML

    <order ref=http://boox.com/orders/1>
       <customer ref=http://boox.com/customers/42>
       <books>
         <book ref=http://boox.com/sciencefiction/thehitchhikers
                    guidetothegalaxy>
         <book ref=http://boox.com/fantasy/thelordoftherings>
       </books>
    </order>


                                                                                     Folie 11
                                                         REST TechTalk > D. Seider > 15.01.2009
REST – Praxis
REST-basierte Applikationen

   Erfüllen Grundprinzipien von REST
   Sind meist HTTP-basiert (auf Grund von WWW-Verbreitung)
   Sind nicht neu


   Realisierungsmöglichkeiten
        Servlet API, JAX-RS,




                                                                                    Folie 12
                                                        REST TechTalk > D. Seider > 15.01.2009
REST
JSR 311 oder JAX-RS

  The Java API for RESTful Web Services
  Ziel: Vereinfachung der Umsetzung von REST-Prinzipien
  Server-seitig
  Version 1.0


  Referenzimplementierung: Jersey




                                                                                      Folie 13
                                                          REST TechTalk > D. Seider > 15.01.2009
REST
Jersey

   Situation
         Client – [GET, PUT, POST, DELETE, ...] URL
         Server – Applikationslogik (in Java)
   Ziel
         Verknüpfen von Client-Anfragen mit Applikationslogik


   Umsetzung in Jersey
       Abbilden von URLs und HTTP-Request-Methoden auf Klassen und
       Methoden in Java mittels Annotationen




                                                                                        Folie 14
                                                            REST TechTalk > D. Seider > 15.01.2009
REST
Demonstration

   Jersey und RESTClient




                                                       Folie 15
                           REST TechTalk > D. Seider > 15.01.2009
REST-basierte WS vs. WS mit XML
Fakten

  WS mit XML
      Protokollunabhängig (aber fast immer SOAP mit HTTP)
      Tunneln über HTTP GET        !Fehlercodes, !Caching, ...
      Explizite Schnittstellenbeschreibung – WSDL (aber bedarf meist
      Metainformationen)
         Gewohnter Ansatz


  REST-basierte WS
      Nutzen von bewährtem Protokoll HTTP
           Fehlercodes, Caching, Content Negotiation,
      Unabhängiger Client durch einheitliche Schnittstelle
      Metainformationen notwendig
      Gewöhnungsbedürftiger Ansatz

                                                                                         Folie 16
                                                             REST TechTalk > D. Seider > 15.01.2009
Zusammenfassung


  REST ist Architekturkonzept
  WWW liegt diesem Konzept zu Grunde


  REST-basierte Applikationen sind nicht neu
  REST-basierte Applikationen nutzen bewährtes Protokoll (HTTP)


  Standards und Implementierungen von REST-APIs




                                                                                     Folie 17
                                                         REST TechTalk > D. Seider > 15.01.2009
Quellen und Verweise


  Quellen
       Dissertation von Roy Fielding
       Stefan Tilkov: A Brief Introduction to REST
       Stefan Tilkov: REST Anti-Patterns
       Java Magazin 01/09
       JSR 311


  Projekte
       Jersey
       RESTClient




                                                                                 Folie 18
                                                     REST TechTalk > D. Seider > 15.01.2009
Fragen und Anregungen




                                                    Folie 19
                        REST TechTalk > D. Seider > 15.01.2009

Weitere ähnliche Inhalte

Ähnlich wie REST

Webtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer ÜberblickWebtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer ÜberblickClaus Brell
 
RESTful APIs mit Dart
RESTful APIs mit DartRESTful APIs mit Dart
RESTful APIs mit DartNane Kratzke
 
Restful Frontend-Architecture
Restful Frontend-ArchitectureRestful Frontend-Architecture
Restful Frontend-ArchitectureSandro Sonntag
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009Felix Sasaki
 
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-PortalsOpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portalsflimm
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1Manfred Steyer
 
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003Top 10 Internet Trends 2003
Top 10 Internet Trends 2003Jürg Stuker
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere RESTMartin Abraham
 
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...Peter Kirchner
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Jürg Stuker
 
Barrierefreie, Java-Script gestützte Webapplikationen im praxisnahen Umfeld
Barrierefreie, Java-Script gestützte Webapplikationen im praxisnahen UmfeldBarrierefreie, Java-Script gestützte Webapplikationen im praxisnahen Umfeld
Barrierefreie, Java-Script gestützte Webapplikationen im praxisnahen Umfeldfelixnagel
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresMatthias Jauernig
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Jürg Stuker
 
Data Virtualization - Supernova
Data Virtualization - SupernovaData Virtualization - Supernova
Data Virtualization - SupernovaTorsten Glunde
 
Service-orientierte Architekturen
Service-orientierte ArchitekturenService-orientierte Architekturen
Service-orientierte Architekturenpscheir
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Eric Eggert
 
Magdeburg | 2010-07-12 | Einführung in das Semantic Web
Magdeburg | 2010-07-12 | Einführung in das Semantic WebMagdeburg | 2010-07-12 | Einführung in das Semantic Web
Magdeburg | 2010-07-12 | Einführung in das Semantic WebWebmontag
 
HTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungHTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungChristian Baranowski
 

Ähnlich wie REST (20)

Webtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer ÜberblickWebtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer Überblick
 
RESTful APIs mit Dart
RESTful APIs mit DartRESTful APIs mit Dart
RESTful APIs mit Dart
 
Restful Frontend-Architecture
Restful Frontend-ArchitectureRestful Frontend-Architecture
Restful Frontend-Architecture
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
 
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-PortalsOpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1
 
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000
 
Barrierefreie, Java-Script gestützte Webapplikationen im praxisnahen Umfeld
Barrierefreie, Java-Script gestützte Webapplikationen im praxisnahen UmfeldBarrierefreie, Java-Script gestützte Webapplikationen im praxisnahen Umfeld
Barrierefreie, Java-Script gestützte Webapplikationen im praxisnahen Umfeld
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core Middlewares
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
 
Data Virtualization - Supernova
Data Virtualization - SupernovaData Virtualization - Supernova
Data Virtualization - Supernova
 
Service-orientierte Architekturen
Service-orientierte ArchitekturenService-orientierte Architekturen
Service-orientierte Architekturen
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)
 
Magdeburg | 2010-07-12 | Einführung in das Semantic Web
Magdeburg | 2010-07-12 | Einführung in das Semantic WebMagdeburg | 2010-07-12 | Einführung in das Semantic Web
Magdeburg | 2010-07-12 | Einführung in das Semantic Web
 
HTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungHTTP und Java Servlets Programmierung
HTTP und Java Servlets Programmierung
 

Mehr von Andreas Schreiber

Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...Andreas Schreiber
 
Visualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented RealityVisualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented RealityAndreas Schreiber
 
Provenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureProvenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureAndreas Schreiber
 
Raising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace CenterRaising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace CenterAndreas Schreiber
 
Open Source Licensing for Rocket Scientists
Open Source Licensing for Rocket ScientistsOpen Source Licensing for Rocket Scientists
Open Source Licensing for Rocket ScientistsAndreas Schreiber
 
Interactive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality HeadsetsInteractive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality HeadsetsAndreas Schreiber
 
Provenance for Reproducible Data Science
Provenance for Reproducible Data ScienceProvenance for Reproducible Data Science
Provenance for Reproducible Data ScienceAndreas Schreiber
 
Visualizing Provenance using Comics
Visualizing Provenance using ComicsVisualizing Provenance using Comics
Visualizing Provenance using ComicsAndreas Schreiber
 
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-VerletzungenNachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-VerletzungenAndreas Schreiber
 
Reproducible Science with Python
Reproducible Science with PythonReproducible Science with Python
Reproducible Science with PythonAndreas Schreiber
 
A Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self DataA Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self DataAndreas Schreiber
 
Tracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The RestTracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The RestAndreas Schreiber
 
High Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris DataHigh Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris DataAndreas Schreiber
 
Bericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & ExpositionBericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & ExpositionAndreas Schreiber
 
Telemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermannTelemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermannAndreas Schreiber
 
Quantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-SensorenQuantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-SensorenAndreas Schreiber
 

Mehr von Andreas Schreiber (20)

Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
 
Visualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented RealityVisualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented Reality
 
Provenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureProvenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructure
 
Raising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace CenterRaising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace Center
 
Open Source Licensing for Rocket Scientists
Open Source Licensing for Rocket ScientistsOpen Source Licensing for Rocket Scientists
Open Source Licensing for Rocket Scientists
 
Interactive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality HeadsetsInteractive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality Headsets
 
Provenance for Reproducible Data Science
Provenance for Reproducible Data ScienceProvenance for Reproducible Data Science
Provenance for Reproducible Data Science
 
Visualizing Provenance using Comics
Visualizing Provenance using ComicsVisualizing Provenance using Comics
Visualizing Provenance using Comics
 
Quantified Self Comics
Quantified Self ComicsQuantified Self Comics
Quantified Self Comics
 
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-VerletzungenNachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
 
Reproducible Science with Python
Reproducible Science with PythonReproducible Science with Python
Reproducible Science with Python
 
Python at Warp Speed
Python at Warp SpeedPython at Warp Speed
Python at Warp Speed
 
A Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self DataA Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self Data
 
Open Source im DLR
Open Source im DLROpen Source im DLR
Open Source im DLR
 
Tracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The RestTracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The Rest
 
High Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris DataHigh Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris Data
 
Bericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & ExpositionBericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & Exposition
 
Telemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermannTelemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermann
 
Big Python
Big PythonBig Python
Big Python
 
Quantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-SensorenQuantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-Sensoren
 

REST

  • 1. REST TechTalk Doreen Seider DLR-SC, Köln, 15.01.2009 Folie 1 REST TechTalk > D. Seider > 15.01.2009
  • 2. Gliederung Theorie REST – Was? Was nicht? Woher? Wohin? Praxis REST-basierte Applikationen JSR 311 (JAX-RS) Referenzimplementierung Jersey Zusammenfassung Folie 2 REST TechTalk > D. Seider > 15.01.2009
  • 3. REST – Theorie Was ist REST? REST ist eine Alternative für SOAP Web Services ...? REST ist HTTP-basiert ...? REST ist ein Hype ...? ...? REST ist ein Architekturkonzept. (REST vs. SOAP) Folie 3 REST TechTalk > D. Seider > 15.01.2009
  • 4. REST Definition REpresentational State Transfer Geprägt 2000 in Dissertation von Roy Fielding “Architectural Styles and the Design of Network-based Software Architectures” Grundprinzipien Zustandslose Client-Server-Kommunikation Eindeutig identifizierbare Ressourcen Einheitliche Schnittstelle Repräsentation(en) der Ressourcen Hypermedia Folie 4 REST TechTalk > D. Seider > 15.01.2009
  • 5. REST Architektur des WWW Basisstandards: HTTP, URL, HTML Erfüllung der REST-Grundprinzipien = REST-basiert Quelle: Wikipedia Folie 5 REST TechTalk > D. Seider > 15.01.2009
  • 6. REST Grundprinzipien am Beispiel WWW Zustandslose Client-Server-Kommunikation Server Clients Folie 6 REST TechTalk > D. Seider > 15.01.2009
  • 7. REST Grundprinzipien am Beispiel WWW Eindeutig identifizierbare Ressourcen Uniform Resource Locator (URL) http://boox.com/sciencefiction/thehitchhikersguidetothegalaxy http://boox.com/orders/2009/01 http://boox.com/customers/42 http://boox.com/sales/2000-2009 Folie 7 REST TechTalk > D. Seider > 15.01.2009
  • 8. REST Grundprinzipien am Beispiel WWW Einheitliche Schnittstelle HTTP-Request-Methoden GET – Abrufen PUT – Update oder Erstellen POST – Erstellen oder Hinzufügen DELETE – Löschen (HEAD, TRACE, OPTIONS, CONNECT) [GET, PUT, POST, DELETE, ...] http://boox.com/orders/2009/01 [GET, PUT, POST, DELETE, ...] http://boox.com/customers/42 ... Folie 8 REST TechTalk > D. Seider > 15.01.2009
  • 9. REST Grundprinzipien am Beispiel WWW Einheitliche Schnittstelle Quelle: http://www.infoq.com/articles/rest-introduction Folie 9 REST TechTalk > D. Seider > 15.01.2009
  • 10. REST Grundprinzipien am Beispiel WWW Repräsentation(en) von Ressourcen Felder Accept und Content-Type im HTTP-Header Client-spezifische Repräsentationen Z.B. Browser: HTML HTTP/1.1 200 OK Server: Apache/1.3.29 (Unix) PHP/4.3.4 Content-Length: 483 Content-Language: de Content-Type: text/html Connection: close Folie 10 REST TechTalk > D. Seider > 15.01.2009
  • 11. REST Grundprinzipien am Beispiel WWW Hypermedia Verknüpfung identifizierbarer Ressourcen (WWWeb) URL von Ressourcen in Repräsentation von anderen Ressourcen Siehe HTML <order ref=http://boox.com/orders/1> <customer ref=http://boox.com/customers/42> <books> <book ref=http://boox.com/sciencefiction/thehitchhikers guidetothegalaxy> <book ref=http://boox.com/fantasy/thelordoftherings> </books> </order> Folie 11 REST TechTalk > D. Seider > 15.01.2009
  • 12. REST – Praxis REST-basierte Applikationen Erfüllen Grundprinzipien von REST Sind meist HTTP-basiert (auf Grund von WWW-Verbreitung) Sind nicht neu Realisierungsmöglichkeiten Servlet API, JAX-RS, Folie 12 REST TechTalk > D. Seider > 15.01.2009
  • 13. REST JSR 311 oder JAX-RS The Java API for RESTful Web Services Ziel: Vereinfachung der Umsetzung von REST-Prinzipien Server-seitig Version 1.0 Referenzimplementierung: Jersey Folie 13 REST TechTalk > D. Seider > 15.01.2009
  • 14. REST Jersey Situation Client – [GET, PUT, POST, DELETE, ...] URL Server – Applikationslogik (in Java) Ziel Verknüpfen von Client-Anfragen mit Applikationslogik Umsetzung in Jersey Abbilden von URLs und HTTP-Request-Methoden auf Klassen und Methoden in Java mittels Annotationen Folie 14 REST TechTalk > D. Seider > 15.01.2009
  • 15. REST Demonstration Jersey und RESTClient Folie 15 REST TechTalk > D. Seider > 15.01.2009
  • 16. REST-basierte WS vs. WS mit XML Fakten WS mit XML Protokollunabhängig (aber fast immer SOAP mit HTTP) Tunneln über HTTP GET !Fehlercodes, !Caching, ... Explizite Schnittstellenbeschreibung – WSDL (aber bedarf meist Metainformationen) Gewohnter Ansatz REST-basierte WS Nutzen von bewährtem Protokoll HTTP Fehlercodes, Caching, Content Negotiation, Unabhängiger Client durch einheitliche Schnittstelle Metainformationen notwendig Gewöhnungsbedürftiger Ansatz Folie 16 REST TechTalk > D. Seider > 15.01.2009
  • 17. Zusammenfassung REST ist Architekturkonzept WWW liegt diesem Konzept zu Grunde REST-basierte Applikationen sind nicht neu REST-basierte Applikationen nutzen bewährtes Protokoll (HTTP) Standards und Implementierungen von REST-APIs Folie 17 REST TechTalk > D. Seider > 15.01.2009
  • 18. Quellen und Verweise Quellen Dissertation von Roy Fielding Stefan Tilkov: A Brief Introduction to REST Stefan Tilkov: REST Anti-Patterns Java Magazin 01/09 JSR 311 Projekte Jersey RESTClient Folie 18 REST TechTalk > D. Seider > 15.01.2009
  • 19. Fragen und Anregungen Folie 19 REST TechTalk > D. Seider > 15.01.2009