Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Zack die Ente und der API-Client spricht

Zack die Ente und der API-Client spricht

Die aktuelle Marktentwicklung treibt otto.de dazu sich vom einem abgeschlossenem Shop hin zu einem offenen Ökosystem zu entwickeln. Dafür ist zwingend notwendig Shop-Funktionalitäten über eine API zu veröffentliche. Verschiedenste Clients wie zum Beispiel native Apps, Social-Media-Sites, IoT-Devices und externe Websites sollen sich flexibel anbinden können. Im Vortrag wird die Microservice-Architektur von otto.de und der Aufbau unserer externen API (Java/Spring-Security/OAuth2) vorgestellt. Es wird auf Herausforderungen und Lösungen in verteilten Architekturen eingegangen. Abschließend zeigen wir anhand einer Live-Demo wie einfach sich externe Clients und überraschende Anwendungsfälle über die API umsetzen lassen.

Benedikt Stemmildt

November 04, 2019
Tweet

More Decks by Benedikt Stemmildt

Other Decks in Programming

Transcript

  1. 1. Ziele 2. Anforderungen 3. Architektur 4. Einheitliches Bild nach

    Außen Datenschutz & Recht Dokumentation Aufklärung & Wissensverteilung HOW TO BUILD YOURSELF AN API
  2. DIE API SOLL WIRKEN, ALS OB SIE AUS EINEM GUSS,

    VON EINEM ENTWICKLER, GESCHRIEBEN WURDE.
  3. 3. ARCHITEKTUR - ZENTRAL Data driven Sicher und Standardisiert Einheitliches

    API Design Allgemeingültig und abstrahiert Autonomie der Teams Technologiefreiheit Lose Kopplung Shared Nothing Vertikaler Systemschnitt RESTful Architektur Test and Learn Zentrale Rechte- & Rollenverwaltung
  4. 3. ARCHITEKTUR - DEZENTRAL Data driven Sicher und Standardisiert Einheitliches

    API Design Allgemeingültig und abstrahiert Autonomie der Teams Technologiefreiheit Lose Kopplung Shared Nothing Vertikaler Systemschnitt RESTful Architektur Test and Learn Zentrale Rechte- & Rollenverwaltung
  5. UMSETZUNG API-Authorization-Server Basiert auf Java Microservice Template von otto.de: Sprint-Boot

    Spring-Security OAuth Spring-Security JWT Mongo-DB API-Validation-Services Spring-Security Core public @interface PreAuthorize @PreAuthorize("#oauth2.hasScope('read')")