API Experience – A primer
Daniel Kocot, Senior Solution Architect / Head of API Experience & Operations
Slide 2
Slide 2 text
Name: Daniel Kocot
Role: Senior Solution Architect / Head of API
Experience & Operations
Email:
Twitter: @dk_1977
LinkedIn:
[email protected]
https://www.linkedin.com/in/danielkocot/
Slide 3
Slide 3 text
Customers?
Slide 4
Slide 4 text
Good Design?
Slide 5
Slide 5 text
Adoption of API first
An API is the first (and often only) interface to users of an application
An API comes first — before the implementation
An API is described (documented) or self-descriptive
Slide 6
Slide 6 text
API as a (Digital) Product
Slide 7
Slide 7 text
Design Sprint
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
Personas & Use Cases
Slide 10
Slide 10 text
Personas
Who is going to use the API?
Slide 11
Slide 11 text
Use Cases
Describing why the API is needed and what systems are involved.
Slide 12
Slide 12 text
BUT…
Slide 13
Slide 13 text
You are not the consumer!
Slide 14
Slide 14 text
API by use case first
Slide 15
Slide 15 text
API Interaction Patterns
Tunnel
Resource
Hypermedia
Query
Event-Based
Slide 16
Slide 16 text
Data Model
Slide 17
Slide 17 text
Data first
Slide 18
Slide 18 text
Internal vs. External data model
Does the existent data model support the required use cases?
Is a middleware for the aggregations and/or transformations needed?
Slide 19
Slide 19 text
Master Data Management
Adopting the idea of a Data Catalog
Slide 20
Slide 20 text
API Specification
Slide 21
Slide 21 text
OpenAPI / AsyncAPI
Slide 22
Slide 22 text
Other Specifications
ProtoBuf
GraphQL Schema
Slide 23
Slide 23 text
Focus Rest(ful) APIs
Slide 24
Slide 24 text
Examples for API Design Patterns
Long Running Operations
Paging / Filtering
Large Payloads
Slide 25
Slide 25 text
Goal: Establishing a design library
Slide 26
Slide 26 text
Architecture Discussion
Slide 27
Slide 27 text
API Architecture
Slide 28
Slide 28 text
Solutions Architecture Pattern
Using patterns which are well established in the industry…
But also still evolving
But please only adopt them
Slide 29
Slide 29 text
API Architecture is normally not that simple…
Slide 30
Slide 30 text
Because we will work more and more on the
infrastructure level.
Slide 31
Slide 31 text
API Endpoint Implementation
Slide 32
Slide 32 text
API Mediation
Architectural layer to manage, protect and enrich an API
Intercepting API traffic
Concept of "outer" APIs
No business logic should be handled within this layers
Slide 33
Slide 33 text
Generating model classes for clients
Slide 34
Slide 34 text
API Backend
Slide 35
Slide 35 text
Services for Backend Systems
Use a framework the development team is proficient with
To create a first representation of the data
Transformation is maybe needed
Slide 36
Slide 36 text
Transformations
Use Enterprise Integration Patterns
Apache Camel, Spring Integration, Apache Nifi, SaaS Service (e.g. Make), …
Slide 37
Slide 37 text
Services for Aggregations
Use again a framework the development team is proficient with
To create aggregated oder composed representation of data from Backend APIs
These APIs help to create a better experience for the user
Slide 38
Slide 38 text
Testing
Slide 39
Slide 39 text
Based on the description
Slide 40
Slide 40 text
Description becomes a contract
Slide 41
Slide 41 text
Provide a Postman Collection of the API product
Slide 42
Slide 42 text
Wrap Up
https://linktr.ee/danielkocot
Slide 43
Slide 43 text
Q&A
Slide 44
Slide 44 text
Thank you
Slide 45
Slide 45 text
References
Photo by on
By docsearls - Flickr, CC BY-SA 2.0,
Photo by on
Photo by on
Photo by on
Photo by on
Photo by on
Photo by on
Photo by on
Photo by on
Photo by on
Photo by on
Blake Wisz Unsplash
https://commons.wikimedia.org/w/index.php?
curid=1328081
Jean-Philippe Delberghe Unsplash
Kelli McClintock Unsplash
Faizur Rehman Unsplash
Erik Mclean Unsplash
Markus Spiske Unsplash
John Salvino Unsplash
Gautam Lakum Unsplash
Fredy Jacob Unsplash
Emil Widlund Unsplash
Dan Dennis Unsplash