Das REST-API Architektur-Paradigma: Oft verwendet und oft nicht komplett umgesetzt.
REST-APIs sind überall im Internet. Jede statische Webseite ist sogar REST-Konform. Doch die meisten REST-Implementationen sind gar nicht vollständig, bzw. nur halbherzig umgesetzt. Die ursprüngliche Idee von REST hatte viel mehr im Gepäck. In dieser Episode gehen wir das Thema der REST-API an. Was ist REST? Wo ist der Unterschied zu Restful? Warum wird dieses Architektur-Paradigma oft falsch verstanden? Worum geht es bei den 6 Prinzipien (Client-Server-Architektur-Modell, (HTTP)-Caching, Mehrschichtige Systeme, Zustandslosigkeit, Einheitliche Schnittstelle und Code on Demand) eigentlich? Wie versioniert man eine API? Und welche Nachteile hat REST? All das und noch viel mehr in dieser Episode.
Bonus: Was Napster, eDonkey und Korn mit Brause mit REST APIs zu tun haben.
Das schnelle Feedback zur Episode:
Feedback (gerne auch als Voice Message)
- EngKiosk Community: https://engineeringkiosk.dev/join-discord
- Email: stehtisch@engineeringkiosk.dev
- Mastodon: https://podcasts.social/@engkiosk
- Twitter: https://twitter.com/EngKiosk
- WhatsApp +49 15678 136776
Gerne behandeln wir auch euer Audio Feedback in einer der nächsten Episoden, einfach Audiodatei per Email oder WhatsApp Voice Message an +49 15678 136776
Links
- Simple Object Access Protocol (SOAP): https://www.w3.org/TR/soap/
- Architectural Styles and the Design of Network-based Software Architectures von Roy Fielding: https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- IPFS: https://ipfs.tech/
- Engineering Kiosk Episode #71 Tim Berners-Lee: Was ist das World Wide Web und was ist seine Zukunft?: https://engineeringkiosk.dev/podcast/episode/71-tim-berners-lee-was-ist-das-world-wide-web-und-was-ist-seine-zukunft/
- HTTP Methoden sind nur strings - die Beer Methode: https://gist.github.com/andygrunwald/269b20e33b0c822693d00429ccdb8693
- Offiziell bei der IANA registrierten HTTP Methoden: https://www.iana.org/assignments/http-methods/http-methods.xhtml
- JSON-LD: https://de.wikipedia.org/wiki/JSON-LD
- Hypertext Application Language (HAL): https://de.wikipedia.org/wiki/Hypertext_Application_Language
- Richardson Maturity Model: https://martinfowler.com/articles/richardsonMaturityModel.html
Sprungmarken
(00:00:00) Intro
(00:01:16) REST-APIs, das oft falsch verstandene Architektur-Paradigma
(00:05:05) Was ist REST?
(00:12:13) Wann wurde REST erfunden?
(00:14:14) Die 6 Prinzipien von REST
(00:15:04) Client-Server-Architektur-Modell, (HTTP)-Caching, Mehrschichtige Systeme, Zustandslosigkeit
(00:19:15) Einheitliche Schnittstelle: Adressierbarkeit der Ressource
(00:23:42) Einheitliche Schnittstelle: HTTP Methoden
(00:31:02) Einheitliche Schnittstelle: Hypermedia as the Engine of Application State (HATEOAS)
(00:37:38) API Maturity Model
(00:42:19) Code on Demand
(00:46:41) API-Versionierung + Warning HTTP Header
(00:55:36) Nachteile von REST-APIs: Mehrfache Requests und kompletter Payload
(00:59:06) Rundumschlag zum Thema REST
Hosts
- Wolfgang Gassler (https://mastodon.social/@woolf)
- Andy Grunwald (https://twitter.com/andygrunwald)
Feedback (gerne auch als Voice Message)
- EngKiosk Community: https://engineeringkiosk.dev/join-discord
- Email: stehtisch@engineeringkiosk.dev
- Mastodon: https://podcasts.social/@engkiosk
- Twitter: https://twitter.com/EngKiosk
- WhatsApp +49 15678 136776