SlideShare a Scribd company logo
1 of 62
Download to read offline
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Design and Build
Great APIs
@mamund
Mike Amundsen
youtube.com/mamund
2022 SERIES OF EVENTS
New York
JULY
(HYBRID)
Australia
SEPTEMBER
(HYBRID)
Singapore
APRIL
(VIRTUAL)
Helsinki & North
MARCH
(VIRTUAL)
Paris
DECEMBER
(HYBRID)
London
OCTOBER
(HYBRID)
Hong Kong
AUGUST
(VIRTUAL)
JUNE (VIRTUAL)
India
MAY
(VIRTUAL)
APRIL (VIRTUAL)
Dubai & Middle East
JUNE
(VIRTUAL)
Check out our API Conferences
www.a pida ys .globa l
Want to talk at one of our conferences?
apidays.typeform.com/to/ILJeAaV8
copyright © 2020 by amundsen.com, inc. -- all rights reserved
2
copyright © 2020 by amundsen.com, inc. -- all rights reserved
"From design to code to test to
deployment, unlock hidden business value
and release stable and scalable web APIs
that meet customer needs and solve
important business problems in a
consistent and reliable manner."
-- Pragmatic Publishers
b.mamund.com/GreatWebAPIs
copyright © 2020 by amundsen.com, inc. -- all rights reserved
The Big Picture
● Foundations
● Design
● Build
● Release
● Modify
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Foundations
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Foundations
● API First
● HTTP, Web, & REST
copyright © 2020 by amundsen.com, inc. -- all rights reserved
● API First
○ APIs Solve Business Problems
○ Designing APIs for People
○ Design First
● HTTP, Web, & REST
Foundations
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Foundations
● API First
● HTTP, Web, & REST
○ HTTP is a protocol
■ URLs, Methods, Messages
○ Web is a common practice
■ SoC, links & forms
○ REST is a style
■ properties, requirements, constraints
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Foundations
● API First
○ Solving business problems
for people
● HTTP, Web, & REST
○ Protocol, practice, style
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Designing APIs
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Designing APIs
● Model
● Design
● Describe
copyright © 2020 by amundsen.com, inc. -- all rights reserved
API Design
● Model
○ Norman's Lifecycle
○ There are no straight lines
○ The API Story
● Design
● Describe
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
API Design
● Model
● Design
○ Design Thinking
○ Jobs-to-be-Done
○ The API Diagram
● Describe
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
API Design
● Model
● Design
● Describe
○ Technology agnostic
○ Details on properties & actions
○ ALPS (2014)
○ https://github.com/mamund/2020-04-unified-api-design
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Designing APIs
● Model
○ API Story
● Design
○ API Diagram
● Describe
○ API Description
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs
● Sketching
● Prototyping
● Building
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs
● Sketching
○ Frank Gehry (via Ronnie Mitra)
○ Experiment w/ possibilities
○ Apiary Blueprint (APIB)
○ Sketches are meant to be
thrown away
● Prototyping
● Building
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs
● Sketching
● Prototyping
○ Garment industry toile
○ Explore the details
○ OpenAPI (OAS)
○ Prototypes are made to
be tested
● Building
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs
● Sketching
● Prototyping
● Building
○ Repeatable process
○ Convert prototype/design
into code
○ DARRT
■ Data, Actions, Resources,
Representations, Transitions
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT
A simple, repeatable process for publishing API interfaces
● Data
● Actions
● Resources
● Representations
● Transitions
26
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Data
● The state properties to pass in messages
○ properties, requireds, enums, defaults
27
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Data
● The state properties to pass in messages
○ properties, requireds, enums, defaults
28
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Data
● The state properties to pass in messages
○ properties, requireds, enums, defaults
29
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Data
● The state properties to pass in messages
○ properties, requireds, enums, defs
30
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Actions
● The actual internal operations for the interface
○ approvePayroll, updateCustomer, setStatus
31
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Resources
● The public HTTP resources to access the operations
32
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Representations
● Produce the requested format for resource responses
33
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs : DARRT : Transitions
● The list of public actions as expressed in HTTP
34
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs
● Sketching
○ Experiment, throw away
○ APIB
● Prototyping
○ Explore, test
○ OpenAPI
● Building
○ Translate, repeat
○ NodeJS/DARRT
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Releasing APIs
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Releasing APIs
● Testing
● Security
● Deployment
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Releasing APIs
● Testing
○ Testing Interface, not Code
○ Happy-path (200) & sad-path (400)
○ Simple Request Tests (SRTs)
○ Postman/Newman for BDD
● Security
● Deployment
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Releasing APIs
● Testing
● Security
○ Encryption, Identity, Access Control
○ M2M Authorization w/ JWTs
○ Auth0 as provider
● Deployment
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Releasing APIs
● Testing
● Security
● Deployment
○ Integration, delivery, deployment
○ Automation improves safety
○ Heroku via git push
copyright © 2020 by amundsen.com, inc. -- all rights reserved
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Releasing APIs
● Testing
○ Test interface and behavior
○ Postman/Newman
● Security
○ APIs use client_credentials
w/ JWTs
○ Auth0 as a provider
● Deployment
○ Automate for safety
○ Heroku git push
copyright © 2020 by amundsen.com, inc. -- all rights reserved
And Then...
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
● Design Updates
● Test Updates
● Release Updates
● API Shutdown
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
○ First, do no harm
○ Fork your API
○ Know when to say "No"
● Design Updates
● Test Updates
● Release Updates
● API Shutdown
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
● Design Updates
○ Take nothing away
○ Don't redefine
○ Additions are optional
● Test Updates
● Release Updates
● API Shutdown
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
● Design Updates
● Test Updates
○ Use all existing tests
○ Add new tests for each release
● Release Updates
● API Shutdown
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
● Design Updates
● Test Updates
● Release Updates
○ Reversibility/Re-entry First
○ Side-by-Side Releases
○ Overwriting Releases
● API Shutdown
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
● Design Updates
● Test Updates
● Release Updates
● API Shutdown
○ Place Code in Public Domain
○ Open Source the Interface
○ Recoverable Data
○ Mark the API 410 Gone (w/ a pointer)
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
○ First, Do no harm
● Design Updates
○ No breaking changes
● Test Updates
○ Use all the old tests
● Release Updates
○ Favor Side-by-Side Releases
● API Shutdown
○ Responsible shutdowns
copyright © 2020 by amundsen.com, inc. -- all rights reserved
So....
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Foundations
● API First
○ Solving business problems
for people
● HTTP, Web, & REST
○ Protocol, practice, style
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Designing APIs
● Model
○ API Story
● Design
○ API Diagram
● Describe
○ API Description
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Building APIs
● Sketching
○ Explore, throw away
○ APIB
● Prototyping
○ Details, test
○ OpenAPI
● Building
○ Translate, repeat
○ NodeJS/DARRT
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Releasing APIs
● Testing
○ Test interface and behavior
○ Postman/Newman
● Security
○ APIs use client_credentials
w/ JWTs
○ Auth0 as a provider
● Deployment
○ Automate for safety
○ Heroku git push
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Modifying APIs
● Update Principles
○ First, Do no harm
● Design Updates
○ No breaking changes
● Test Updates
○ Use all the old tests
● Release Updates
○ Favor Side-by-Side Releases
● API Shutdown
○ Responsible shutdowns
copyright © 2020 by amundsen.com, inc. -- all rights reserved
One more thing …
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Design is how it works.
"Design is not just what it looks like
and feels like. Design is how it
works."
–Steve Jobs
copyright © 2020 by amundsen.com, inc. -- all rights reserved
Design and Build
Great APIs
@mamund
Mike Amundsen
youtube.com/mamund

More Related Content

Similar to INTERFACE, by apidays - Design and Build Great Web APIs

apidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulik
apidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulikapidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulik
apidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulikapidays
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondPostman
 
How Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSHow Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSUri Savelchev
 
ETA Padtron Sdn.Bhd. - Enterprise Programming - Tools
ETA Padtron Sdn.Bhd. - Enterprise Programming - ToolsETA Padtron Sdn.Bhd. - Enterprise Programming - Tools
ETA Padtron Sdn.Bhd. - Enterprise Programming - ToolsYuvarani Loganathan
 
LOC presentation 2020: Future of openBIM standards
LOC presentation 2020: Future of openBIM standardsLOC presentation 2020: Future of openBIM standards
LOC presentation 2020: Future of openBIM standardsLéon Berlo
 
AWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei serverAWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei serverAmazon Web Services
 
Enterprise Kafka: Kafka as a Service
Enterprise Kafka: Kafka as a ServiceEnterprise Kafka: Kafka as a Service
Enterprise Kafka: Kafka as a ServiceTodd Palino
 
Power Up Your Productivity with ER/Studio 18.0
Power Up Your Productivity with ER/Studio 18.0Power Up Your Productivity with ER/Studio 18.0
Power Up Your Productivity with ER/Studio 18.0IDERA Software
 
Let’s Talk About the Ipro Platform
Let’s Talk About the Ipro PlatformLet’s Talk About the Ipro Platform
Let’s Talk About the Ipro PlatformIpro Tech
 
Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018
Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018
Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018Amazon Web Services
 
Notebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNotebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNick Pentreath
 
Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...
  Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...  Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...
Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...Autodesk
 
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...SORACOM,INC
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayAmazon Web Services
 
Conjoinix-Intro-Feb-2013
Conjoinix-Intro-Feb-2013Conjoinix-Intro-Feb-2013
Conjoinix-Intro-Feb-2013Ranbir Singh
 
Building Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSBuilding Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSAmazon Web Services
 
Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28Amazon Web Services
 
Websites go Serverless - Floor28
Websites go Serverless - Floor28Websites go Serverless - Floor28
Websites go Serverless - Floor28Boaz Ziniman
 
API-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approachAPI-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approachSven Bernhardt
 
Lightning Talk: From Sinatra to Grape.pdf
Lightning Talk: From Sinatra to Grape.pdfLightning Talk: From Sinatra to Grape.pdf
Lightning Talk: From Sinatra to Grape.pdfRenato675806
 

Similar to INTERFACE, by apidays - Design and Build Great Web APIs (20)

apidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulik
apidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulikapidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulik
apidays LIVE Paris - Avoid Building a Microservices Death Star by Przemek Kulik
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and Beyond
 
How Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSHow Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWS
 
ETA Padtron Sdn.Bhd. - Enterprise Programming - Tools
ETA Padtron Sdn.Bhd. - Enterprise Programming - ToolsETA Padtron Sdn.Bhd. - Enterprise Programming - Tools
ETA Padtron Sdn.Bhd. - Enterprise Programming - Tools
 
LOC presentation 2020: Future of openBIM standards
LOC presentation 2020: Future of openBIM standardsLOC presentation 2020: Future of openBIM standards
LOC presentation 2020: Future of openBIM standards
 
AWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei serverAWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei server
 
Enterprise Kafka: Kafka as a Service
Enterprise Kafka: Kafka as a ServiceEnterprise Kafka: Kafka as a Service
Enterprise Kafka: Kafka as a Service
 
Power Up Your Productivity with ER/Studio 18.0
Power Up Your Productivity with ER/Studio 18.0Power Up Your Productivity with ER/Studio 18.0
Power Up Your Productivity with ER/Studio 18.0
 
Let’s Talk About the Ipro Platform
Let’s Talk About the Ipro PlatformLet’s Talk About the Ipro Platform
Let’s Talk About the Ipro Platform
 
Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018
Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018
Anatomy of a Successful IoT Project, ft. Pentair (IOT202) - AWS re:Invent 2018
 
Notebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNotebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and Kubeflow
 
Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...
  Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...  Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...
Forge - DevCon 2016: Integrate & extend your construction ecosystem with BI...
 
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon Way
 
Conjoinix-Intro-Feb-2013
Conjoinix-Intro-Feb-2013Conjoinix-Intro-Feb-2013
Conjoinix-Intro-Feb-2013
 
Building Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSBuilding Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWS
 
Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28
 
Websites go Serverless - Floor28
Websites go Serverless - Floor28Websites go Serverless - Floor28
Websites go Serverless - Floor28
 
API-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approachAPI-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approach
 
Lightning Talk: From Sinatra to Grape.pdf
Lightning Talk: From Sinatra to Grape.pdfLightning Talk: From Sinatra to Grape.pdf
Lightning Talk: From Sinatra to Grape.pdf
 

More from apidays

apidays Australia 2023 - A programmatic approach to API success including Ope...
apidays Australia 2023 - A programmatic approach to API success including Ope...apidays Australia 2023 - A programmatic approach to API success including Ope...
apidays Australia 2023 - A programmatic approach to API success including Ope...apidays
 
apidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile API
apidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile APIapidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile API
apidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile APIapidays
 
apidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wise
apidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wiseapidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wise
apidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wiseapidays
 
apidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Ventures
apidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Venturesapidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Ventures
apidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Venturesapidays
 
apidays Singapore 2023 - Digitalising agreements with data, design & technolo...
apidays Singapore 2023 - Digitalising agreements with data, design & technolo...apidays Singapore 2023 - Digitalising agreements with data, design & technolo...
apidays Singapore 2023 - Digitalising agreements with data, design & technolo...apidays
 
apidays Singapore 2023 - Building a digital-first investment management model...
apidays Singapore 2023 - Building a digital-first investment management model...apidays Singapore 2023 - Building a digital-first investment management model...
apidays Singapore 2023 - Building a digital-first investment management model...apidays
 
apidays Singapore 2023 - Changing the culture of building software, Aman Dham...
apidays Singapore 2023 - Changing the culture of building software, Aman Dham...apidays Singapore 2023 - Changing the culture of building software, Aman Dham...
apidays Singapore 2023 - Changing the culture of building software, Aman Dham...apidays
 
apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...
apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...
apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...apidays
 
apidays Singapore 2023 - Beyond REST, Claudio Tag, IBM
apidays Singapore 2023 - Beyond REST, Claudio Tag, IBMapidays Singapore 2023 - Beyond REST, Claudio Tag, IBM
apidays Singapore 2023 - Beyond REST, Claudio Tag, IBMapidays
 
apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...
apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...
apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...apidays
 
apidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartner
apidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartnerapidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartner
apidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartnerapidays
 
apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...
apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...
apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...apidays
 
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...apidays
 
Apidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IO
Apidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IOApidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IO
Apidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IOapidays
 
Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...
Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...
Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...apidays
 
Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...
Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...
Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...apidays
 
Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...
Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...
Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...apidays
 
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...apidays
 
Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...
Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...
Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...apidays
 
Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...
Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...
Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...apidays
 

More from apidays (20)

apidays Australia 2023 - A programmatic approach to API success including Ope...
apidays Australia 2023 - A programmatic approach to API success including Ope...apidays Australia 2023 - A programmatic approach to API success including Ope...
apidays Australia 2023 - A programmatic approach to API success including Ope...
 
apidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile API
apidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile APIapidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile API
apidays Singapore 2023 - Addressing the Data Gap, Jerome Eger, Smile API
 
apidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wise
apidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wiseapidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wise
apidays Singapore 2023 - Iterate Faster with Dynamic Flows, Yee Hui Poh, Wise
 
apidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Ventures
apidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Venturesapidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Ventures
apidays Singapore 2023 - Banking the Ecosystem, Apurv Suri, SC Ventures
 
apidays Singapore 2023 - Digitalising agreements with data, design & technolo...
apidays Singapore 2023 - Digitalising agreements with data, design & technolo...apidays Singapore 2023 - Digitalising agreements with data, design & technolo...
apidays Singapore 2023 - Digitalising agreements with data, design & technolo...
 
apidays Singapore 2023 - Building a digital-first investment management model...
apidays Singapore 2023 - Building a digital-first investment management model...apidays Singapore 2023 - Building a digital-first investment management model...
apidays Singapore 2023 - Building a digital-first investment management model...
 
apidays Singapore 2023 - Changing the culture of building software, Aman Dham...
apidays Singapore 2023 - Changing the culture of building software, Aman Dham...apidays Singapore 2023 - Changing the culture of building software, Aman Dham...
apidays Singapore 2023 - Changing the culture of building software, Aman Dham...
 
apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...
apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...
apidays Singapore 2023 - Connecting the trade ecosystem, CHOO Wai Yee, Singap...
 
apidays Singapore 2023 - Beyond REST, Claudio Tag, IBM
apidays Singapore 2023 - Beyond REST, Claudio Tag, IBMapidays Singapore 2023 - Beyond REST, Claudio Tag, IBM
apidays Singapore 2023 - Beyond REST, Claudio Tag, IBM
 
apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...
apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...
apidays Singapore 2023 - Securing and protecting our digital way of life, Ver...
 
apidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartner
apidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartnerapidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartner
apidays Singapore 2023 - State of the API Industry, Manjunath Bhat, Gartner
 
apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...
apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...
apidays Australia 2023 - Curb your Enthusiasm:Sustainable Scaling of APIs, Sa...
 
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
 
Apidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IO
Apidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IOApidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IO
Apidays Paris 2023 - State of Tech Sustainability 2023, Gaël Duez, Green IO
 
Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...
Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...
Apidays Paris 2023 - 7 Mistakes When Putting In Place An API Program, Francoi...
 
Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...
Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...
Apidays Paris 2023 - Building APIs That Developers Love: Feedback Collection ...
 
Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...
Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...
Apidays Paris 2023 - Product Managers and API Documentation, Gareth Faull, Lo...
 
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
 
Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...
Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...
Apidays Paris 2023 - Boosting Event-Driven Development with AsyncAPI and Micr...
 
Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...
Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...
Apidays Paris 2023 - API Observability: Improving Governance, Security and Op...
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

INTERFACE, by apidays - Design and Build Great Web APIs

  • 1. copyright © 2020 by amundsen.com, inc. -- all rights reserved Design and Build Great APIs @mamund Mike Amundsen youtube.com/mamund
  • 2. 2022 SERIES OF EVENTS New York JULY (HYBRID) Australia SEPTEMBER (HYBRID) Singapore APRIL (VIRTUAL) Helsinki & North MARCH (VIRTUAL) Paris DECEMBER (HYBRID) London OCTOBER (HYBRID) Hong Kong AUGUST (VIRTUAL) JUNE (VIRTUAL) India MAY (VIRTUAL) APRIL (VIRTUAL) Dubai & Middle East JUNE (VIRTUAL) Check out our API Conferences www.a pida ys .globa l Want to talk at one of our conferences? apidays.typeform.com/to/ILJeAaV8
  • 3. copyright © 2020 by amundsen.com, inc. -- all rights reserved 2
  • 4. copyright © 2020 by amundsen.com, inc. -- all rights reserved "From design to code to test to deployment, unlock hidden business value and release stable and scalable web APIs that meet customer needs and solve important business problems in a consistent and reliable manner." -- Pragmatic Publishers b.mamund.com/GreatWebAPIs
  • 5. copyright © 2020 by amundsen.com, inc. -- all rights reserved The Big Picture ● Foundations ● Design ● Build ● Release ● Modify
  • 6. copyright © 2020 by amundsen.com, inc. -- all rights reserved Foundations
  • 7. copyright © 2020 by amundsen.com, inc. -- all rights reserved Foundations ● API First ● HTTP, Web, & REST
  • 8. copyright © 2020 by amundsen.com, inc. -- all rights reserved ● API First ○ APIs Solve Business Problems ○ Designing APIs for People ○ Design First ● HTTP, Web, & REST Foundations
  • 9. copyright © 2020 by amundsen.com, inc. -- all rights reserved Foundations ● API First ● HTTP, Web, & REST ○ HTTP is a protocol ■ URLs, Methods, Messages ○ Web is a common practice ■ SoC, links & forms ○ REST is a style ■ properties, requirements, constraints
  • 10. copyright © 2020 by amundsen.com, inc. -- all rights reserved Foundations ● API First ○ Solving business problems for people ● HTTP, Web, & REST ○ Protocol, practice, style
  • 11. copyright © 2020 by amundsen.com, inc. -- all rights reserved Designing APIs
  • 12. copyright © 2020 by amundsen.com, inc. -- all rights reserved Designing APIs ● Model ● Design ● Describe
  • 13. copyright © 2020 by amundsen.com, inc. -- all rights reserved API Design ● Model ○ Norman's Lifecycle ○ There are no straight lines ○ The API Story ● Design ● Describe
  • 14. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 15. copyright © 2020 by amundsen.com, inc. -- all rights reserved API Design ● Model ● Design ○ Design Thinking ○ Jobs-to-be-Done ○ The API Diagram ● Describe
  • 16. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 17. copyright © 2020 by amundsen.com, inc. -- all rights reserved API Design ● Model ● Design ● Describe ○ Technology agnostic ○ Details on properties & actions ○ ALPS (2014) ○ https://github.com/mamund/2020-04-unified-api-design
  • 18. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 19. copyright © 2020 by amundsen.com, inc. -- all rights reserved Designing APIs ● Model ○ API Story ● Design ○ API Diagram ● Describe ○ API Description
  • 20. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs
  • 21. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs ● Sketching ● Prototyping ● Building
  • 22. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs ● Sketching ○ Frank Gehry (via Ronnie Mitra) ○ Experiment w/ possibilities ○ Apiary Blueprint (APIB) ○ Sketches are meant to be thrown away ● Prototyping ● Building
  • 23. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 24. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs ● Sketching ● Prototyping ○ Garment industry toile ○ Explore the details ○ OpenAPI (OAS) ○ Prototypes are made to be tested ● Building
  • 25. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 26. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs ● Sketching ● Prototyping ● Building ○ Repeatable process ○ Convert prototype/design into code ○ DARRT ■ Data, Actions, Resources, Representations, Transitions
  • 27. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT A simple, repeatable process for publishing API interfaces ● Data ● Actions ● Resources ● Representations ● Transitions 26
  • 28. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Data ● The state properties to pass in messages ○ properties, requireds, enums, defaults 27
  • 29. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Data ● The state properties to pass in messages ○ properties, requireds, enums, defaults 28
  • 30. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Data ● The state properties to pass in messages ○ properties, requireds, enums, defaults 29
  • 31. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Data ● The state properties to pass in messages ○ properties, requireds, enums, defs 30
  • 32. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Actions ● The actual internal operations for the interface ○ approvePayroll, updateCustomer, setStatus 31
  • 33. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Resources ● The public HTTP resources to access the operations 32
  • 34. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Representations ● Produce the requested format for resource responses 33
  • 35. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs : DARRT : Transitions ● The list of public actions as expressed in HTTP 34
  • 36. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs ● Sketching ○ Experiment, throw away ○ APIB ● Prototyping ○ Explore, test ○ OpenAPI ● Building ○ Translate, repeat ○ NodeJS/DARRT
  • 37. copyright © 2020 by amundsen.com, inc. -- all rights reserved Releasing APIs
  • 38. copyright © 2020 by amundsen.com, inc. -- all rights reserved Releasing APIs ● Testing ● Security ● Deployment
  • 39. copyright © 2020 by amundsen.com, inc. -- all rights reserved Releasing APIs ● Testing ○ Testing Interface, not Code ○ Happy-path (200) & sad-path (400) ○ Simple Request Tests (SRTs) ○ Postman/Newman for BDD ● Security ● Deployment
  • 40. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 41. copyright © 2020 by amundsen.com, inc. -- all rights reserved Releasing APIs ● Testing ● Security ○ Encryption, Identity, Access Control ○ M2M Authorization w/ JWTs ○ Auth0 as provider ● Deployment
  • 42. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 43. copyright © 2020 by amundsen.com, inc. -- all rights reserved Releasing APIs ● Testing ● Security ● Deployment ○ Integration, delivery, deployment ○ Automation improves safety ○ Heroku via git push
  • 44. copyright © 2020 by amundsen.com, inc. -- all rights reserved
  • 45. copyright © 2020 by amundsen.com, inc. -- all rights reserved Releasing APIs ● Testing ○ Test interface and behavior ○ Postman/Newman ● Security ○ APIs use client_credentials w/ JWTs ○ Auth0 as a provider ● Deployment ○ Automate for safety ○ Heroku git push
  • 46. copyright © 2020 by amundsen.com, inc. -- all rights reserved And Then...
  • 47. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ● Design Updates ● Test Updates ● Release Updates ● API Shutdown
  • 48. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ○ First, do no harm ○ Fork your API ○ Know when to say "No" ● Design Updates ● Test Updates ● Release Updates ● API Shutdown
  • 49. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ● Design Updates ○ Take nothing away ○ Don't redefine ○ Additions are optional ● Test Updates ● Release Updates ● API Shutdown
  • 50. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ● Design Updates ● Test Updates ○ Use all existing tests ○ Add new tests for each release ● Release Updates ● API Shutdown
  • 51. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ● Design Updates ● Test Updates ● Release Updates ○ Reversibility/Re-entry First ○ Side-by-Side Releases ○ Overwriting Releases ● API Shutdown
  • 52. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ● Design Updates ● Test Updates ● Release Updates ● API Shutdown ○ Place Code in Public Domain ○ Open Source the Interface ○ Recoverable Data ○ Mark the API 410 Gone (w/ a pointer)
  • 53. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ○ First, Do no harm ● Design Updates ○ No breaking changes ● Test Updates ○ Use all the old tests ● Release Updates ○ Favor Side-by-Side Releases ● API Shutdown ○ Responsible shutdowns
  • 54. copyright © 2020 by amundsen.com, inc. -- all rights reserved So....
  • 55. copyright © 2020 by amundsen.com, inc. -- all rights reserved Foundations ● API First ○ Solving business problems for people ● HTTP, Web, & REST ○ Protocol, practice, style
  • 56. copyright © 2020 by amundsen.com, inc. -- all rights reserved Designing APIs ● Model ○ API Story ● Design ○ API Diagram ● Describe ○ API Description
  • 57. copyright © 2020 by amundsen.com, inc. -- all rights reserved Building APIs ● Sketching ○ Explore, throw away ○ APIB ● Prototyping ○ Details, test ○ OpenAPI ● Building ○ Translate, repeat ○ NodeJS/DARRT
  • 58. copyright © 2020 by amundsen.com, inc. -- all rights reserved Releasing APIs ● Testing ○ Test interface and behavior ○ Postman/Newman ● Security ○ APIs use client_credentials w/ JWTs ○ Auth0 as a provider ● Deployment ○ Automate for safety ○ Heroku git push
  • 59. copyright © 2020 by amundsen.com, inc. -- all rights reserved Modifying APIs ● Update Principles ○ First, Do no harm ● Design Updates ○ No breaking changes ● Test Updates ○ Use all the old tests ● Release Updates ○ Favor Side-by-Side Releases ● API Shutdown ○ Responsible shutdowns
  • 60. copyright © 2020 by amundsen.com, inc. -- all rights reserved One more thing …
  • 61. copyright © 2020 by amundsen.com, inc. -- all rights reserved Design is how it works. "Design is not just what it looks like and feels like. Design is how it works." –Steve Jobs
  • 62. copyright © 2020 by amundsen.com, inc. -- all rights reserved Design and Build Great APIs @mamund Mike Amundsen youtube.com/mamund