SlideShare a Scribd company logo
Contract-first API Development:
A Case Study in Parallel API
Publishing & Consumption
Chris Busse, APIvista
Contract-first API Development
Chris Busse | @busse | #apistrat
Contract-first API Development
Chris Busse | @busse | #apistrat
Karl
Contract-first API Development
Chris Busse | @busse | #apistrat
One day my Web Designer friend Lisa called me
• She had a new client, TidalScale, and needed help
building a functional demo based on her UI design
• The front-end would be Angular
• Very advanced & capable dev team on a fast moving
project…
“They said if I can tell them what APIs I need,
they’ll build them!”
Contract-first API Development
Chris Busse | @busse | #apistrat
Let’s use the Open API
Specification and design with
a Contract-first approach.
Everything will be
AWESOME!
Contract-first API Development
Chris Busse | @busse | #apistrat
The Team
Lisa
Designer
Chuck
Product Manager
Leon
Back-end Dev
James
Front-end Dev
…and Chris (me), wrangling the API Spec!
Contract-first API Development
Chris Busse | @busse | #apistrat
Started with a paper prototype UI to determine data model
Contract-first API Development
Chris Busse | @busse | #apistrat
What were we defining an API for?
Contract-first API Development
Chris Busse | @busse | #apistrat
“I wrote up this JSON blob..”
• This model was derived from the paper prototype
• ~300 lines, 8 levels deep, representing their entire architecture
• This was a very important artifact – it represented well-
organized, thought out and a unified view from the Product
and Back-End Dev teams
• In an Enterprise, we’d call this “Governance” and a lot of
effort is put into this process
Contract-first API Development
Chris Busse | @busse | #apistrat
Reorganized the JSON blob into Open API Spec
Contract-first API Development
Chris Busse | @busse | #apistrat
Back-end Dev built Mock Services in Go
• Mock Service backed the demo and were easy to begin
populating with real data as it became available
• Willingness to expose this to whitelisted IPs enabled
better distributed development & “Try It Out”
• This could be considered “throw away” work by some,
but it was critical to getting the Front-end developer
working in parallel
Contract-first API Development
Chris Busse | @busse | #apistrat
Front-end Dev used the Spec as source of truth
Contract-first API Development
Chris Busse | @busse | #apistrat
Now we were doing parallel development
Back-end Dev
- Validate Data Structures
- Create Initial Mock Services
- Make them functional
Front-end Dev
- Build first from Spec
- Test against Mock Services
- Provide validation and feedback
Product Team
Sees the demo in action sooner
Able to facilitate product feedback quicker
Contract-first API Development
Chris Busse | @busse | #apistrat
Used Spec + GitHub to Organize a Feedback Loop
Parallel
Development
Collaborate
Modify Spec
After a few iterations the
TidalScale team was
making Spec edits too
Contract-first API Development
Chris Busse | @busse | #apistrat
This enabled very rapid iteration
• We versioned the spec (arguably a misuse of that field)
• Kept a CHANGELOG.md in the repo to make changes
human-readable
• Used Semantic-ish Versioning (http://semver.org/)
Contract-first API Development
Chris Busse | @busse | #apistrat
Moving fast!
• Communicating in code
• Spotting issues with the spec quickly
• Realtime collaboration was happening
Contract-first API Development
Chris Busse | @busse | #apistrat
“Now we need to document the WebSockets!”
• The overall solution architecture used WebSockets in addition to REST
• We discovered that we wanted all-encompassing developer
documentation across different types of APIs, which went beyond what
Open API Spec/Swagger supported
• Open API Spec is really about REST - How as practitioners do we
handle a mix of WebSockets, GraphQL, etc in the Developer
Documentation Experience?
Contract-first API Development
Chris Busse | @busse | #apistrat
“Now we want to publish as ASCIIDOC…”
• “The industry” generally accepts that “online interactive”
documentation is “what developers want”
• Client & business needs may dictate other channels
• OAS’s ecosystem was very helpful here – someone had already
built a tool that simplified ASCIIDOC conversion
Contract-first API Development
Chris Busse | @busse | #apistrat
We shipped the demo on
time and it achieved its
goals!
Everything is AWESOME!
Contract-first API Development
Chris Busse | @busse | #apistrat
General Takeaways
1. Good communication is often the best tool to solve a
problem
2. Governance to align stakeholders pays dividends (and
helps create a positive SNR for Devs)
3. There’s more than one way to version – do what’s best
for you – it’s about effectively communicating change
4. Not every API is REST - understand the limitations of
any tooling you bring in to your solution
Contract-first API Development
Chris Busse | @busse | #apistrat
Contract-first Parallel Development
• Can enable rapid innovation and change
• Create a page to be the “same page” – Open API Spec
was that for us – align everyone on the “contract’
• There must be a give & get from both sides
– Back End: Willing to spend time building Mocks
– Front End: Willingness to change when data
structures change
Contract-first API Development
Chris Busse | @busse | #apistrat
Sometimes a technical problem is really
a communication problem in disguise.
Contract-first API Development
Chris Busse | @busse | #apistrat
Thank you!
Chris Busse
chris.busse@apivista.com
http://apivista.com
@busse
http://busse.io

More Related Content

What's hot

How to Leverage Serverless to Optimize for Cost and Performance
How to Leverage Serverless to Optimize for Cost and PerformanceHow to Leverage Serverless to Optimize for Cost and Performance
How to Leverage Serverless to Optimize for Cost and Performance
DevOps.com
 
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPSBUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
CodeOps Technologies LLP
 
Training Offerings - CodeOps Technologies
Training Offerings - CodeOps TechnologiesTraining Offerings - CodeOps Technologies
Training Offerings - CodeOps Technologies
CodeOps Technologies LLP
 
A path from Share to ADF
A path from Share to ADFA path from Share to ADF
A path from Share to ADF
David Webster
 
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNERCREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CodeOps Technologies LLP
 
Amazingly Simple Serverless Go
Amazingly Simple Serverless GoAmazingly Simple Serverless Go
Amazingly Simple Serverless Go
Yun Zhi Lin
 
Azure Functions: Beginners to Advanced – Part 1
Azure Functions: Beginners to Advanced – Part 1Azure Functions: Beginners to Advanced – Part 1
Azure Functions: Beginners to Advanced – Part 1
BizTalk360
 
The future of Activiti Cloud @ DevCon 2019
The future of Activiti Cloud @ DevCon 2019The future of Activiti Cloud @ DevCon 2019
The future of Activiti Cloud @ DevCon 2019
Mauricio (Salaboy) Salatino
 
Joe Emison - 10X Product Development
Joe Emison - 10X Product DevelopmentJoe Emison - 10X Product Development
Joe Emison - 10X Product Development
ServerlessConf
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
CodeOps Technologies LLP
 
Serverless is the new black
Serverless is the new blackServerless is the new black
Serverless is the new black
Raphaël Bickel
 
Platform as a Service for Rapid Development
Platform as a Service for Rapid DevelopmentPlatform as a Service for Rapid Development
Platform as a Service for Rapid Development
Puja Pramudya
 
GAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsGAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure Functions
Wagner Silveira
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
CodePolitan
 
The Serverless Revolution: AWS Lambda and the Serverless Framework in Action
The Serverless Revolution: AWS Lambda and the Serverless Framework  in ActionThe Serverless Revolution: AWS Lambda and the Serverless Framework  in Action
The Serverless Revolution: AWS Lambda and the Serverless Framework in Action
Toby Hede
 
Angular CDK
Angular CDKAngular CDK
Angular CDK
Eliran Eliassy
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
Sébastien Levert
 
ACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWS
ACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWSACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWS
ACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWS
AWS User Group Kochi
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
Christos Matskas
 
Serverless Orchestration with Azure Durable Functions
Serverless Orchestration with Azure Durable FunctionsServerless Orchestration with Azure Durable Functions
Serverless Orchestration with Azure Durable Functions
Callon Campbell
 

What's hot (20)

How to Leverage Serverless to Optimize for Cost and Performance
How to Leverage Serverless to Optimize for Cost and PerformanceHow to Leverage Serverless to Optimize for Cost and Performance
How to Leverage Serverless to Optimize for Cost and Performance
 
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPSBUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
 
Training Offerings - CodeOps Technologies
Training Offerings - CodeOps TechnologiesTraining Offerings - CodeOps Technologies
Training Offerings - CodeOps Technologies
 
A path from Share to ADF
A path from Share to ADFA path from Share to ADF
A path from Share to ADF
 
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNERCREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
 
Amazingly Simple Serverless Go
Amazingly Simple Serverless GoAmazingly Simple Serverless Go
Amazingly Simple Serverless Go
 
Azure Functions: Beginners to Advanced – Part 1
Azure Functions: Beginners to Advanced – Part 1Azure Functions: Beginners to Advanced – Part 1
Azure Functions: Beginners to Advanced – Part 1
 
The future of Activiti Cloud @ DevCon 2019
The future of Activiti Cloud @ DevCon 2019The future of Activiti Cloud @ DevCon 2019
The future of Activiti Cloud @ DevCon 2019
 
Joe Emison - 10X Product Development
Joe Emison - 10X Product DevelopmentJoe Emison - 10X Product Development
Joe Emison - 10X Product Development
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
 
Serverless is the new black
Serverless is the new blackServerless is the new black
Serverless is the new black
 
Platform as a Service for Rapid Development
Platform as a Service for Rapid DevelopmentPlatform as a Service for Rapid Development
Platform as a Service for Rapid Development
 
GAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsGAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure Functions
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
The Serverless Revolution: AWS Lambda and the Serverless Framework in Action
The Serverless Revolution: AWS Lambda and the Serverless Framework  in ActionThe Serverless Revolution: AWS Lambda and the Serverless Framework  in Action
The Serverless Revolution: AWS Lambda and the Serverless Framework in Action
 
Angular CDK
Angular CDKAngular CDK
Angular CDK
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
 
ACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWS
ACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWSACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWS
ACDKOCHI19 - Rapid development, CI/CD for Chatbots on AWS
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
 
Serverless Orchestration with Azure Durable Functions
Serverless Orchestration with Azure Durable FunctionsServerless Orchestration with Azure Durable Functions
Serverless Orchestration with Azure Durable Functions
 

Similar to LF_APIStrat17_Contract-first API Development: A Case Study in Parallel API Publishing & Consumption

API-First Redesign of a Legacy Application
API-First Redesign of a Legacy ApplicationAPI-First Redesign of a Legacy Application
API-First Redesign of a Legacy Application
Nordic APIs
 
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
Chris Busse
 
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
Amazon Web Services
 
Alfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceAlfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder Experience
Ray Gauss
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
apidays
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
Phil Wilkins
 
CI and CD with Visual Studio Team Services and Azure
CI and CD with Visual Studio Team Services and AzureCI and CD with Visual Studio Team Services and Azure
CI and CD with Visual Studio Team Services and Azure
Lennart Passig
 
Refining Your API Design - Architecture and Modeling Learning Event
Refining Your API Design - Architecture and Modeling Learning EventRefining Your API Design - Architecture and Modeling Learning Event
Refining Your API Design - Architecture and Modeling Learning Event
LaunchAny
 
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
Vincent Biret
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentWhy You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API Development
DevenPhillips
 
SPFx- A modern development model for SharePoint
SPFx- A modern development model  for SharePointSPFx- A modern development model  for SharePoint
SPFx- A modern development model for SharePoint
Kirti Prajapati
 
Full stack conference talk slides
Full stack conference talk slidesFull stack conference talk slides
Full stack conference talk slides
Sameer Al-Sakran
 
App dev and partner ecosystem for pink social connections 2017
App dev and partner ecosystem for pink   social connections 2017App dev and partner ecosystem for pink   social connections 2017
App dev and partner ecosystem for pink social connections 2017
Heath McCarthy
 
Turning the IBM Collaboration Ecosystem Pink
Turning the IBM Collaboration Ecosystem PinkTurning the IBM Collaboration Ecosystem Pink
Turning the IBM Collaboration Ecosystem Pink
LetsConnect
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
Istvan Rath
 
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with PostmanPOST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
Postman
 
Couchbase Connect NYC
Couchbase Connect NYCCouchbase Connect NYC
Couchbase Connect NYC
Chris Neff
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays
 
Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?
C4Media
 
Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1
Gabriel Ortiz
 

Similar to LF_APIStrat17_Contract-first API Development: A Case Study in Parallel API Publishing & Consumption (20)

API-First Redesign of a Legacy Application
API-First Redesign of a Legacy ApplicationAPI-First Redesign of a Legacy Application
API-First Redesign of a Legacy Application
 
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
API-first Redesign of a Legacy Application - Nordic APIs Platform Summit 2018
 
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
 
Alfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceAlfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder Experience
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
 
CI and CD with Visual Studio Team Services and Azure
CI and CD with Visual Studio Team Services and AzureCI and CD with Visual Studio Team Services and Azure
CI and CD with Visual Studio Team Services and Azure
 
Refining Your API Design - Architecture and Modeling Learning Event
Refining Your API Design - Architecture and Modeling Learning EventRefining Your API Design - Architecture and Modeling Learning Event
Refining Your API Design - Architecture and Modeling Learning Event
 
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentWhy You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API Development
 
SPFx- A modern development model for SharePoint
SPFx- A modern development model  for SharePointSPFx- A modern development model  for SharePoint
SPFx- A modern development model for SharePoint
 
Full stack conference talk slides
Full stack conference talk slidesFull stack conference talk slides
Full stack conference talk slides
 
App dev and partner ecosystem for pink social connections 2017
App dev and partner ecosystem for pink   social connections 2017App dev and partner ecosystem for pink   social connections 2017
App dev and partner ecosystem for pink social connections 2017
 
Turning the IBM Collaboration Ecosystem Pink
Turning the IBM Collaboration Ecosystem PinkTurning the IBM Collaboration Ecosystem Pink
Turning the IBM Collaboration Ecosystem Pink
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with PostmanPOST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
 
Couchbase Connect NYC
Couchbase Connect NYCCouchbase Connect NYC
Couchbase Connect NYC
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
 
Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?Beyond DevOps: How Netflix Bridges the Gap?
Beyond DevOps: How Netflix Bridges the Gap?
 
Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1
 

More from LF_APIStrat

LF_APIStrat17_OWASP’s Latest Category: API Underprotection
LF_APIStrat17_OWASP’s Latest Category: API UnderprotectionLF_APIStrat17_OWASP’s Latest Category: API Underprotection
LF_APIStrat17_OWASP’s Latest Category: API Underprotection
LF_APIStrat
 
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...
LF_APIStrat
 
LF_APIStrat17_Super-Powered REST API Testing
LF_APIStrat17_Super-Powered REST API TestingLF_APIStrat17_Super-Powered REST API Testing
LF_APIStrat17_Super-Powered REST API Testing
LF_APIStrat
 
LF_APIStrat17_How Mature are You? A Developer Experience Maturity Model
LF_APIStrat17_How Mature are You? A Developer Experience Maturity ModelLF_APIStrat17_How Mature are You? A Developer Experience Maturity Model
LF_APIStrat17_How Mature are You? A Developer Experience Maturity Model
LF_APIStrat
 
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat
 
LF_APIStrat17_Things I Wish People Told Me About Writing Docs
LF_APIStrat17_Things I Wish People Told Me About Writing DocsLF_APIStrat17_Things I Wish People Told Me About Writing Docs
LF_APIStrat17_Things I Wish People Told Me About Writing Docs
LF_APIStrat
 
LF_APIStrat17_Lifting Legacy to the Cloud on API Boosters
LF_APIStrat17_Lifting Legacy to the Cloud on API BoostersLF_APIStrat17_Lifting Legacy to the Cloud on API Boosters
LF_APIStrat17_Lifting Legacy to the Cloud on API Boosters
LF_APIStrat
 
LF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your DocumentationLF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat
 
LF_APIStrat17_How We Doubled the Velocity of Our Developer Experience Team
LF_APIStrat17_How We Doubled the Velocity of Our Developer Experience TeamLF_APIStrat17_How We Doubled the Velocity of Our Developer Experience Team
LF_APIStrat17_How We Doubled the Velocity of Our Developer Experience Team
LF_APIStrat
 
LF_APIStrat17_API Marketing: First Comes Usability, then Discoverability
LF_APIStrat17_API Marketing: First Comes Usability, then DiscoverabilityLF_APIStrat17_API Marketing: First Comes Usability, then Discoverability
LF_APIStrat17_API Marketing: First Comes Usability, then Discoverability
LF_APIStrat
 
LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...
LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...
LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...
LF_APIStrat
 
LF_APIStrat17_REST API Microversions
LF_APIStrat17_REST API Microversions LF_APIStrat17_REST API Microversions
LF_APIStrat17_REST API Microversions
LF_APIStrat
 
LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...
LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...
LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...
LF_APIStrat
 
LF_APIStrat17_Case Study: Cold Decision Trees
LF_APIStrat17_Case Study: Cold Decision TreesLF_APIStrat17_Case Study: Cold Decision Trees
LF_APIStrat17_Case Study: Cold Decision Trees
LF_APIStrat
 
LF_APIStrat17_Getting Your API House In Order
LF_APIStrat17_Getting Your API House In OrderLF_APIStrat17_Getting Your API House In Order
LF_APIStrat17_Getting Your API House In Order
LF_APIStrat
 
LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...
LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...
LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...
LF_APIStrat
 
LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...
LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...
LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...
LF_APIStrat
 
LF_APIStrat17_Open Data vs. the World
LF_APIStrat17_Open Data vs. the World LF_APIStrat17_Open Data vs. the World
LF_APIStrat17_Open Data vs. the World
LF_APIStrat
 
LF_APIStrat17_Practical DevSecOps for APIs
LF_APIStrat17_Practical DevSecOps for APIsLF_APIStrat17_Practical DevSecOps for APIs
LF_APIStrat17_Practical DevSecOps for APIs
LF_APIStrat
 
LF_APIStrat17_Bulletproofing Your API's
LF_APIStrat17_Bulletproofing Your API'sLF_APIStrat17_Bulletproofing Your API's
LF_APIStrat17_Bulletproofing Your API's
LF_APIStrat
 

More from LF_APIStrat (20)

LF_APIStrat17_OWASP’s Latest Category: API Underprotection
LF_APIStrat17_OWASP’s Latest Category: API UnderprotectionLF_APIStrat17_OWASP’s Latest Category: API Underprotection
LF_APIStrat17_OWASP’s Latest Category: API Underprotection
 
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...
 
LF_APIStrat17_Super-Powered REST API Testing
LF_APIStrat17_Super-Powered REST API TestingLF_APIStrat17_Super-Powered REST API Testing
LF_APIStrat17_Super-Powered REST API Testing
 
LF_APIStrat17_How Mature are You? A Developer Experience Maturity Model
LF_APIStrat17_How Mature are You? A Developer Experience Maturity ModelLF_APIStrat17_How Mature are You? A Developer Experience Maturity Model
LF_APIStrat17_How Mature are You? A Developer Experience Maturity Model
 
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
 
LF_APIStrat17_Things I Wish People Told Me About Writing Docs
LF_APIStrat17_Things I Wish People Told Me About Writing DocsLF_APIStrat17_Things I Wish People Told Me About Writing Docs
LF_APIStrat17_Things I Wish People Told Me About Writing Docs
 
LF_APIStrat17_Lifting Legacy to the Cloud on API Boosters
LF_APIStrat17_Lifting Legacy to the Cloud on API BoostersLF_APIStrat17_Lifting Legacy to the Cloud on API Boosters
LF_APIStrat17_Lifting Legacy to the Cloud on API Boosters
 
LF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your DocumentationLF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
LF_APIStrat17_Don't Repeat Yourself - Your API is Your Documentation
 
LF_APIStrat17_How We Doubled the Velocity of Our Developer Experience Team
LF_APIStrat17_How We Doubled the Velocity of Our Developer Experience TeamLF_APIStrat17_How We Doubled the Velocity of Our Developer Experience Team
LF_APIStrat17_How We Doubled the Velocity of Our Developer Experience Team
 
LF_APIStrat17_API Marketing: First Comes Usability, then Discoverability
LF_APIStrat17_API Marketing: First Comes Usability, then DiscoverabilityLF_APIStrat17_API Marketing: First Comes Usability, then Discoverability
LF_APIStrat17_API Marketing: First Comes Usability, then Discoverability
 
LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...
LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...
LF_APIStrat17_Standing Taller with Technology: APIs, IoT, and the Digital Wor...
 
LF_APIStrat17_REST API Microversions
LF_APIStrat17_REST API Microversions LF_APIStrat17_REST API Microversions
LF_APIStrat17_REST API Microversions
 
LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...
LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...
LF_APIStrat17_I Believe You But My Enterprise Don't: Adopting Open Standards ...
 
LF_APIStrat17_Case Study: Cold Decision Trees
LF_APIStrat17_Case Study: Cold Decision TreesLF_APIStrat17_Case Study: Cold Decision Trees
LF_APIStrat17_Case Study: Cold Decision Trees
 
LF_APIStrat17_Getting Your API House In Order
LF_APIStrat17_Getting Your API House In OrderLF_APIStrat17_Getting Your API House In Order
LF_APIStrat17_Getting Your API House In Order
 
LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...
LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...
LF_APIStrat17_Diving Deep into the API Ocean with Open Source Deep Learning T...
 
LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...
LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...
LF_APIStrat17_Supporting SDKs in 7 Different Programming Languages While Main...
 
LF_APIStrat17_Open Data vs. the World
LF_APIStrat17_Open Data vs. the World LF_APIStrat17_Open Data vs. the World
LF_APIStrat17_Open Data vs. the World
 
LF_APIStrat17_Practical DevSecOps for APIs
LF_APIStrat17_Practical DevSecOps for APIsLF_APIStrat17_Practical DevSecOps for APIs
LF_APIStrat17_Practical DevSecOps for APIs
 
LF_APIStrat17_Bulletproofing Your API's
LF_APIStrat17_Bulletproofing Your API'sLF_APIStrat17_Bulletproofing Your API's
LF_APIStrat17_Bulletproofing Your API's
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 

LF_APIStrat17_Contract-first API Development: A Case Study in Parallel API Publishing & Consumption

  • 1.
  • 2. Contract-first API Development: A Case Study in Parallel API Publishing & Consumption Chris Busse, APIvista
  • 3. Contract-first API Development Chris Busse | @busse | #apistrat
  • 4. Contract-first API Development Chris Busse | @busse | #apistrat Karl
  • 5. Contract-first API Development Chris Busse | @busse | #apistrat One day my Web Designer friend Lisa called me • She had a new client, TidalScale, and needed help building a functional demo based on her UI design • The front-end would be Angular • Very advanced & capable dev team on a fast moving project… “They said if I can tell them what APIs I need, they’ll build them!”
  • 6. Contract-first API Development Chris Busse | @busse | #apistrat Let’s use the Open API Specification and design with a Contract-first approach. Everything will be AWESOME!
  • 7. Contract-first API Development Chris Busse | @busse | #apistrat The Team Lisa Designer Chuck Product Manager Leon Back-end Dev James Front-end Dev …and Chris (me), wrangling the API Spec!
  • 8. Contract-first API Development Chris Busse | @busse | #apistrat Started with a paper prototype UI to determine data model
  • 9. Contract-first API Development Chris Busse | @busse | #apistrat What were we defining an API for?
  • 10. Contract-first API Development Chris Busse | @busse | #apistrat “I wrote up this JSON blob..” • This model was derived from the paper prototype • ~300 lines, 8 levels deep, representing their entire architecture • This was a very important artifact – it represented well- organized, thought out and a unified view from the Product and Back-End Dev teams • In an Enterprise, we’d call this “Governance” and a lot of effort is put into this process
  • 11. Contract-first API Development Chris Busse | @busse | #apistrat Reorganized the JSON blob into Open API Spec
  • 12. Contract-first API Development Chris Busse | @busse | #apistrat Back-end Dev built Mock Services in Go • Mock Service backed the demo and were easy to begin populating with real data as it became available • Willingness to expose this to whitelisted IPs enabled better distributed development & “Try It Out” • This could be considered “throw away” work by some, but it was critical to getting the Front-end developer working in parallel
  • 13. Contract-first API Development Chris Busse | @busse | #apistrat Front-end Dev used the Spec as source of truth
  • 14. Contract-first API Development Chris Busse | @busse | #apistrat Now we were doing parallel development Back-end Dev - Validate Data Structures - Create Initial Mock Services - Make them functional Front-end Dev - Build first from Spec - Test against Mock Services - Provide validation and feedback Product Team Sees the demo in action sooner Able to facilitate product feedback quicker
  • 15. Contract-first API Development Chris Busse | @busse | #apistrat Used Spec + GitHub to Organize a Feedback Loop Parallel Development Collaborate Modify Spec After a few iterations the TidalScale team was making Spec edits too
  • 16. Contract-first API Development Chris Busse | @busse | #apistrat This enabled very rapid iteration • We versioned the spec (arguably a misuse of that field) • Kept a CHANGELOG.md in the repo to make changes human-readable • Used Semantic-ish Versioning (http://semver.org/)
  • 17. Contract-first API Development Chris Busse | @busse | #apistrat Moving fast! • Communicating in code • Spotting issues with the spec quickly • Realtime collaboration was happening
  • 18. Contract-first API Development Chris Busse | @busse | #apistrat “Now we need to document the WebSockets!” • The overall solution architecture used WebSockets in addition to REST • We discovered that we wanted all-encompassing developer documentation across different types of APIs, which went beyond what Open API Spec/Swagger supported • Open API Spec is really about REST - How as practitioners do we handle a mix of WebSockets, GraphQL, etc in the Developer Documentation Experience?
  • 19. Contract-first API Development Chris Busse | @busse | #apistrat “Now we want to publish as ASCIIDOC…” • “The industry” generally accepts that “online interactive” documentation is “what developers want” • Client & business needs may dictate other channels • OAS’s ecosystem was very helpful here – someone had already built a tool that simplified ASCIIDOC conversion
  • 20. Contract-first API Development Chris Busse | @busse | #apistrat We shipped the demo on time and it achieved its goals! Everything is AWESOME!
  • 21. Contract-first API Development Chris Busse | @busse | #apistrat General Takeaways 1. Good communication is often the best tool to solve a problem 2. Governance to align stakeholders pays dividends (and helps create a positive SNR for Devs) 3. There’s more than one way to version – do what’s best for you – it’s about effectively communicating change 4. Not every API is REST - understand the limitations of any tooling you bring in to your solution
  • 22. Contract-first API Development Chris Busse | @busse | #apistrat Contract-first Parallel Development • Can enable rapid innovation and change • Create a page to be the “same page” – Open API Spec was that for us – align everyone on the “contract’ • There must be a give & get from both sides – Back End: Willing to spend time building Mocks – Front End: Willingness to change when data structures change
  • 23. Contract-first API Development Chris Busse | @busse | #apistrat Sometimes a technical problem is really a communication problem in disguise.
  • 24. Contract-first API Development Chris Busse | @busse | #apistrat Thank you! Chris Busse chris.busse@apivista.com http://apivista.com @busse http://busse.io