RESTing on HTTP - FrOSCon 10 - 2015-08-23

40
FROSCON 10 RESTING ON HTTP MAXIMILIAN BERGHOFF - 23.08.2015

Transcript of RESTing on HTTP - FrOSCon 10 - 2015-08-23

Page 1: RESTing on HTTP - FrOSCon 10 - 2015-08-23

FROSCON 10

RESTING ON HTTPMAXIMILIAN BERGHOFF - 23.08.2015

Page 2: RESTing on HTTP - FrOSCon 10 - 2015-08-23

WHO AM I?Maximilian Berghoff

Mayflower GmbH (Würzburg)

@[email protected]

Page 3: RESTing on HTTP - FrOSCon 10 - 2015-08-23

ABOUT?

Page 4: RESTing on HTTP - FrOSCon 10 - 2015-08-23

REST = HTTP?

Page 5: RESTing on HTTP - FrOSCon 10 - 2015-08-23

HTTP

Page 6: RESTing on HTTP - FrOSCon 10 - 2015-08-23

[POSTMANN]LIVE-DEMO

Page 7: RESTing on HTTP - FrOSCon 10 - 2015-08-23

STATUS CODES1XX ­ Intermediate2XX ­ Success3XX ­ Redirect4XX ­ Client Error5XX ­ Server Error

Page 8: RESTing on HTTP - FrOSCon 10 - 2015-08-23

METHOD

Page 9: RESTing on HTTP - FrOSCon 10 - 2015-08-23

SAVE METHOD?

Page 10: RESTing on HTTP - FrOSCon 10 - 2015-08-23

GET

Page 11: RESTing on HTTP - FrOSCon 10 - 2015-08-23

GET /API/V1/SESSIONS/1/EDIT?NAME="BLA BLUB"

Page 12: RESTing on HTTP - FrOSCon 10 - 2015-08-23

GET /API/V1/SESSIONS/1/EDIT?NAME="BLA BLUB"

Page 13: RESTing on HTTP - FrOSCon 10 - 2015-08-23

[POSTMANN]LIVE-DEMO

Page 14: RESTing on HTTP - FrOSCon 10 - 2015-08-23

ROY FIELDINGHTTP Spezification

Page 15: RESTing on HTTP - FrOSCon 10 - 2015-08-23

DISERTATIONARCHITECTURAL STYLES AND THE DESIGN OF NETWORK-BASED

SOFTWARE ARCHITECTURESDOCTOR OF PHILOSOPHY, 2000

Page 16: RESTing on HTTP - FrOSCon 10 - 2015-08-23

4 CONSTRAINTS

Page 17: RESTing on HTTP - FrOSCon 10 - 2015-08-23

ADDRESS

Page 18: RESTing on HTTP - FrOSCon 10 - 2015-08-23

REPRESENTATION

Page 19: RESTing on HTTP - FrOSCon 10 - 2015-08-23

STATELESSNESS

Page 20: RESTing on HTTP - FrOSCon 10 - 2015-08-23

OPERATIONS

Page 21: RESTing on HTTP - FrOSCon 10 - 2015-08-23

RESOURCEN?

Page 22: RESTing on HTTP - FrOSCon 10 - 2015-08-23

EVERY INFORMATION(HTML) DocumentImageCollection of resources

Every target of a Link.

Page 23: RESTing on HTTP - FrOSCon 10 - 2015-08-23

REPRESENTATION

Page 24: RESTing on HTTP - FrOSCon 10 - 2015-08-23

[POSTMANN]LIVE-DEMO

Page 25: RESTing on HTTP - FrOSCon 10 - 2015-08-23

RESOURCE DESIGN

Page 26: RESTing on HTTP - FrOSCon 10 - 2015-08-23

HATEOAS

Page 27: RESTing on HTTP - FrOSCon 10 - 2015-08-23

HYPERMEDIAAS THE ENGINE OF

APPLICATION STATE

Page 28: RESTing on HTTP - FrOSCon 10 - 2015-08-23

WTF?

Page 29: RESTing on HTTP - FrOSCon 10 - 2015-08-23

<?xml version="1.0" encoding="UTF­8"?><result>    <id>20</id>    <first_name>            </first_name>    <last_name>            </last_name>    <link rel="self" href="/api/v1/speakers/20"/>    <link rel="session" href="/api/v1/sessions/20"/></result>

<![CDATA[Marco]]>

<![CDATA[Pivetta]]>

Page 30: RESTing on HTTP - FrOSCon 10 - 2015-08-23

JSON ?HAL Spezifikation

Page 31: RESTing on HTTP - FrOSCon 10 - 2015-08-23

{    "id": 20,    "first_name": "Marco",    "last_name": "Pivetta",    "_links": {        "self": {            "href": "/api/v1/speakers/20"        },        "session": {            "href": "/api/v1/sessions/20"        }    }}

Page 32: RESTing on HTTP - FrOSCon 10 - 2015-08-23

BACK TO THE BEGINNING

Page 33: RESTing on HTTP - FrOSCon 10 - 2015-08-23

CONSTRAINTS FULFILLED-> REST = HTTP?

Page 34: RESTing on HTTP - FrOSCon 10 - 2015-08-23

NO!!!

Page 35: RESTing on HTTP - FrOSCon 10 - 2015-08-23

HYPETEXT TRANSFERPROTOCOL

Page 36: RESTing on HTTP - FrOSCon 10 - 2015-08-23

REPRESENTATIONALSTATE TRANSFER

Page 37: RESTing on HTTP - FrOSCon 10 - 2015-08-23

I LOVE

RESTING ON HTTP

Page 38: RESTing on HTTP - FrOSCon 10 - 2015-08-23

QUESTIONS ?Ask now!Twitter:   @ElectricMaxxxMail:   [email protected]

Page 39: RESTing on HTTP - FrOSCon 10 - 2015-08-23

THANK YOU!

Page 40: RESTing on HTTP - FrOSCon 10 - 2015-08-23

< <