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

Preview:

Citation preview

FROSCON 10

RESTING ON HTTPMAXIMILIAN BERGHOFF - 23.08.2015

WHO AM I?Maximilian Berghoff

Mayflower GmbH (Würzburg)

@ElectricMaxxxMaximilian.Berghoff@mayflower.de

ABOUT?

REST = HTTP?

HTTP

[POSTMANN]LIVE-DEMO

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

METHOD

SAVE METHOD?

GET

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

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

[POSTMANN]LIVE-DEMO

ROY FIELDINGHTTP Spezification

DISERTATIONARCHITECTURAL STYLES AND THE DESIGN OF NETWORK-BASED

SOFTWARE ARCHITECTURESDOCTOR OF PHILOSOPHY, 2000

4 CONSTRAINTS

ADDRESS

REPRESENTATION

STATELESSNESS

OPERATIONS

RESOURCEN?

EVERY INFORMATION(HTML) DocumentImageCollection of resources

Every target of a Link.

REPRESENTATION

[POSTMANN]LIVE-DEMO

RESOURCE DESIGN

HATEOAS

HYPERMEDIAAS THE ENGINE OF

APPLICATION STATE

WTF?

<?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]]>

JSON ?HAL Spezifikation

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

BACK TO THE BEGINNING

CONSTRAINTS FULFILLED-> REST = HTTP?

NO!!!

HYPETEXT TRANSFERPROTOCOL

REPRESENTATIONALSTATE TRANSFER

I LOVE

RESTING ON HTTP

QUESTIONS ?Ask now!Twitter:   @ElectricMaxxxMail:   Maximilian.Berghoff@mayflower.de

THANK YOU!

< <