SlideShare a Scribd company logo
2
Most read
9
Most read
10
Most read
API First Workflow:
Better API Docs through a DevOps
pipeline
Yantian You
yantian.you@sas.com
API Integration Engineer @SAS
AGENDA
01
02
Current API Process (Code first)
vs API First (Design First)
API First Workflow / Vision
03 Use cases and examples
Developers Testers Reviews
Documentation
Code first
Product-Led
Developer-Led
Developers
Documentation Continuous Delivery
OpenAPI 3.0 Specification
Testers
Product
Manager
Design First
API First Roadmap
Planning Mindset
Automation (CI/CD)
Efficiency Usability
API First Workflow
API Design API Specification Tool chain APIs
tests
documents
Code
template
Mock
services Cloud
Platform
Security
check
Other docs
A Quick Overview
Development Cycle
Continuous Integration
Mock
Server
Lint
Team
Review
Rejected
Approved
Merge to
Master
Server Code
Generated (Boiler
Plate)
Mock Server
Started
Documentation
Generated
Development Cycle Continued
Testers /
PreSales
Tech
Writers
Edits
Contract testing
Testers
test Code
Developer
adds logic
Commits code
Tests Fail
Tests
Pass
Final
Team
Review
Publish API
Write
OpenAPI
Pull
Request
Client Code
generated
API
Spec
Key
Human
Automatic /
Machine Done
Fail
Pass
…
Let’s go deeper into it
Design Workshop
Stoplight Studio
Swagger Editor
Apicurio
Spec gen tool(Web/GUI)
Opensource
API Specification
Product manager + Customer +
Stakeholder + Testers + Developers
How to get an API Spec at the very beginning?
API First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipeline
Development Cycle
Continuous Integration
Mock
Server
Lint
Team
Review
Rejected
Approved
Merge to
Master
Server Code
Generated (Boiler
Plate)
Mock Server
Started
Documentation
Generated
Development Cycle Continued
Testers /
PreSales
Tech
Writers
Edits
Contract testing
Testers
test Code
Developer
adds logic
Commits code
Tests Fail
Tests
Pass
Final
Team
Review
Publish API
Write
OpenAPI
Pull
Request
Client Code
generated
API
Spec
Key
Human
Automatic /
Machine Done
Fail
Pass
Let’s talk about the automation part
API
Dev
Mock
server
Server
code
Client &
Test
Deploy on k8s
cloud server
Push to git
platform
Review &
pull the
branch
Doc gen
Input
Deepmap
OpenAPI -
Gen
Swagger-
Gen
Code gen tool (Containers)
Prism Apisprout
Mock tool (Containers)
Opensource
Opensource
Doc
Initial
Spectral
Opensource
Linting tool(Containers)
API Spec Spec linting
Test &
Review &
Merge
contract/smoke/unit
Test
Input
API Spec Tool Box 1 Tool Box 2 Tool Box 3 Tool Box n
For local run and testing:
Tooling containers & Sage tools(= Sas + mage)
For running in the pipeline:
Using the same tooling containers
OpenSource tools in the pipeline
Use cases and examples
Linting your specification
spectral
API First Workflow: How could we have better API Docs through DevOps pipeline
Building the mock server
Take API Specification as the input, run prism
tool for building a mock service
• Build the mock server locally
• Build the mock server through the
pipeline - auto-deploy to a k8s cluster
with istio configured. Each of the API
mock service will have a unique
hostname
• Testers could start playing around the
mock services even before the real
service comes out
API Spec
Local mock Assign a namespace
Configure ingress rule
Deploy the services
Remote mock
API First Workflow: How could we have better API Docs through DevOps pipeline
Input
API Spec Tool Box 1 Tool Box 2 Tool Box 3 Tool Box n
New Tool 1
New Tool 3
Tools in the future
Questions?
Thank you!

More Related Content

What's hot (20)

Azure API Management
Azure API Management
Daniel Toomey
 
Introduction to AWS API Gateway Presentation
Introduction to AWS API Gateway Presentation
Knoldus Inc.
 
Adopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHub
SmartBear
 
Ansible Automation - Enterprise Use Cases | Juncheng Anthony Lin
Ansible Automation - Enterprise Use Cases | Juncheng Anthony Lin
Vietnam Open Infrastructure User Group
 
[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities
Mohammed A. Imran
 
Api types
Api types
Sarah Maddox
 
02 api gateway
02 api gateway
Janani Velmurugan
 
Selenium
Selenium
Ruturaj Doshi
 
SonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code Quality
Larry Nung
 
Introduction to Kong API Gateway
Introduction to Kong API Gateway
Yohann Ciurlik
 
APIsecure 2023 - Approaching Multicloud API Security USing Metacloud, David L...
APIsecure 2023 - Approaching Multicloud API Security USing Metacloud, David L...
apidays
 
DevOps - A Gentle Introduction
DevOps - A Gentle Introduction
Ganesh Samarthyam
 
Jenkins Overview
Jenkins Overview
Ahmed M. Gomaa
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
Sonatype
 
Test Automation Frameworks: Assumptions, Concepts & Tools
Test Automation Frameworks: Assumptions, Concepts & Tools
Amit Rawat
 
SonarQube Overview
SonarQube Overview
Ahmed M. Gomaa
 
Microservices & API Gateways
Microservices & API Gateways
Kong Inc.
 
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Nexus FrontierTech
 
SonarQube Presentation.pptx
SonarQube Presentation.pptx
Satwik Bhupathi Raju
 
SonarQube
SonarQube
Gnanaseelan Jeb
 
Azure API Management
Azure API Management
Daniel Toomey
 
Introduction to AWS API Gateway Presentation
Introduction to AWS API Gateway Presentation
Knoldus Inc.
 
Adopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHub
SmartBear
 
[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities
Mohammed A. Imran
 
SonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code Quality
Larry Nung
 
Introduction to Kong API Gateway
Introduction to Kong API Gateway
Yohann Ciurlik
 
APIsecure 2023 - Approaching Multicloud API Security USing Metacloud, David L...
APIsecure 2023 - Approaching Multicloud API Security USing Metacloud, David L...
apidays
 
DevOps - A Gentle Introduction
DevOps - A Gentle Introduction
Ganesh Samarthyam
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
Sonatype
 
Test Automation Frameworks: Assumptions, Concepts & Tools
Test Automation Frameworks: Assumptions, Concepts & Tools
Amit Rawat
 
Microservices & API Gateways
Microservices & API Gateways
Kong Inc.
 
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Nexus FrontierTech
 

Similar to API First Workflow: How could we have better API Docs through DevOps pipeline (20)

The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
SmartBear
 
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
Postman
 
2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards
APIsecure_ Official
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API Development
DevenPhillips
 
Spec-first API Design for Speed and Safety
Spec-first API Design for Speed and Safety
Atlassian
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
SmartBear
 
Api clarity webinar
Api clarity webinar
LibbySchulze
 
OpenAPI Intro (1).pdf
OpenAPI Intro (1).pdf
Postman
 
APIdays Singapore 2019 - Bringing OpenAPI to devOps, Vincenzo Chianese, Softw...
APIdays Singapore 2019 - Bringing OpenAPI to devOps, Vincenzo Chianese, Softw...
apidays
 
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
GOG.com dev team
 
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
Joe Levy
 
API Description Languages
API Description Languages
Akana
 
API Description Languages
API Description Languages
Akana
 
Presentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab Summit
Open API Initiative (OAI)
 
Service api design validation & collaboration
Service api design validation & collaboration
Uchit Vyas ☁
 
apidays LIVE New York 2021 - Service API design validation by Uchit Vyas, KPMG
apidays LIVE New York 2021 - Service API design validation by Uchit Vyas, KPMG
apidays
 
API Tools.pptx
API Tools.pptx
Subramanian Krishnan
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
API Versioning for Zero Downtime | Devoxx Belgium 2017
API Versioning for Zero Downtime | Devoxx Belgium 2017
Patrice Krakow
 
Delivering Developer Tools at Scale
Delivering Developer Tools at Scale
Oracle Developers
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
SmartBear
 
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
Postman
 
2022 APIsecure_Securing APIs with Open Standards
2022 APIsecure_Securing APIs with Open Standards
APIsecure_ Official
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API Development
DevenPhillips
 
Spec-first API Design for Speed and Safety
Spec-first API Design for Speed and Safety
Atlassian
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
SmartBear
 
Api clarity webinar
Api clarity webinar
LibbySchulze
 
OpenAPI Intro (1).pdf
OpenAPI Intro (1).pdf
Postman
 
APIdays Singapore 2019 - Bringing OpenAPI to devOps, Vincenzo Chianese, Softw...
APIdays Singapore 2019 - Bringing OpenAPI to devOps, Vincenzo Chianese, Softw...
apidays
 
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
GOG.com dev team
 
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
Joe Levy
 
API Description Languages
API Description Languages
Akana
 
API Description Languages
API Description Languages
Akana
 
Presentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab Summit
Open API Initiative (OAI)
 
Service api design validation & collaboration
Service api design validation & collaboration
Uchit Vyas ☁
 
apidays LIVE New York 2021 - Service API design validation by Uchit Vyas, KPMG
apidays LIVE New York 2021 - Service API design validation by Uchit Vyas, KPMG
apidays
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
API Versioning for Zero Downtime | Devoxx Belgium 2017
API Versioning for Zero Downtime | Devoxx Belgium 2017
Patrice Krakow
 
Delivering Developer Tools at Scale
Delivering Developer Tools at Scale
Oracle Developers
 
Ad

More from Pronovix (20)

By the time they're reading the docs, it's already too late
By the time they're reading the docs, it's already too late
Pronovix
 
Optimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and Feedback
Pronovix
 
Success metrics when launching your first developer portal
Success metrics when launching your first developer portal
Pronovix
 
Documentation, APIs & AI
Documentation, APIs & AI
Pronovix
 
Making sense of analytics for documentation pages
Making sense of analytics for documentation pages
Pronovix
 
Feedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiences
Pronovix
 
GraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing Docs
Pronovix
 
API Documentation For Web3
API Documentation For Web3
Pronovix
 
Why your API doesn’t solve my problem: A use case-driven API design
Why your API doesn’t solve my problem: A use case-driven API design
Pronovix
 
unREST among the docs
unREST among the docs
Pronovix
 
Developing a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIs
Pronovix
 
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Pronovix
 
What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?
Pronovix
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Pronovix
 
Creating API documentation for international communities
Creating API documentation for international communities
Pronovix
 
One Developer Portal to Document Them All
One Developer Portal to Document Them All
Pronovix
 
Docs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation Experience
Pronovix
 
Developer journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your product
Pronovix
 
Complexity is not complicatedness
Complexity is not complicatedness
Pronovix
 
How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...
Pronovix
 
By the time they're reading the docs, it's already too late
By the time they're reading the docs, it's already too late
Pronovix
 
Optimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and Feedback
Pronovix
 
Success metrics when launching your first developer portal
Success metrics when launching your first developer portal
Pronovix
 
Documentation, APIs & AI
Documentation, APIs & AI
Pronovix
 
Making sense of analytics for documentation pages
Making sense of analytics for documentation pages
Pronovix
 
Feedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiences
Pronovix
 
GraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing Docs
Pronovix
 
API Documentation For Web3
API Documentation For Web3
Pronovix
 
Why your API doesn’t solve my problem: A use case-driven API design
Why your API doesn’t solve my problem: A use case-driven API design
Pronovix
 
unREST among the docs
unREST among the docs
Pronovix
 
Developing a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIs
Pronovix
 
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone
Pronovix
 
What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?
Pronovix
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Pronovix
 
Creating API documentation for international communities
Creating API documentation for international communities
Pronovix
 
One Developer Portal to Document Them All
One Developer Portal to Document Them All
Pronovix
 
Docs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation Experience
Pronovix
 
Developer journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your product
Pronovix
 
Complexity is not complicatedness
Complexity is not complicatedness
Pronovix
 
How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...
Pronovix
 
Ad

Recently uploaded (20)

Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Oracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization Program
VICTOR MAESTRE RAMIREZ
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...
Matsushita Laboratory
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Oracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization Program
VICTOR MAESTRE RAMIREZ
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...
Matsushita Laboratory
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 

API First Workflow: How could we have better API Docs through DevOps pipeline

Editor's Notes

  • #3: This is what we’ll talk about today. Very short agenda. We’ll touch *briefly* on what our current process is and the challenges that it brings, and then we’ll levelset on what API First is and how it alleviates those challenges. And then we’ll talk about our Vision of bring API First to SAS from a development perspective.
  • #4: So to start, this is a very simplified diagram of working in a code first basis. It’s a very traditional way of developing. A very siloed way of working, backend developers write the code, and then they throw it over the fence for testers, and somewhere along the way the developers are writing. And then poor Jeannie is left to review the an api she has not business context of. Very siloed, very manual - there’s challenges to that. there are times that are published documentation doesn’t sync with our code / software And finding a design flaw here can be very expensive because the code has already been written This would also bring too much work for the reviewers to review the docs, especially before the release date, If some terrible issues come out which are not suitable for shipment, they will not have enough time to fix them In this climate, this isn’t the most effective way to work. The adapting CI/CD was brought up countless times for many companys, and API First in one of the ways we can work toward that’s.
  • #5: The API First would changes the API developing process form developer led to a product-led, so with API First, instead of the old way where it’s ansynchrounous and siloed, - you have something more like this
  • #6: Instead of silos, you have teams working synchronously. And this is all made possible by starting with a OpenAPI 3.0 Specification. When you start with a spec, you give all these folks a starting point. What you’ll also notice that’s mentioned here but not mentioned in the previous slide, the heavy influence of a product manager. They’re the decision makers and driver here- so moving towards a product led company. They will be involved with the designing of this spec. When you start with design, You make development bend for the design, not design bending for development. What’s really nice about openapi 3.0 spec is that it’s machine readable so that opens us up to many opportunities to automate testing, and documentation, and to some degree code generation. So, we have a few teams that are ahead of curve and already working like this to a degree. it. Of course there isn’t a standard for this so they all kinda went off and did their own thing- And what we’ve done is we collaborated with them and we got their feedback on it so far. And it’s been working really well for them. The testers are happy, the developers are happy. So we studied their process and we evolved it understand what’s working and what’s not- what opensource tools do they like and don’t like. And they gave us a starting point, from there we designed an API First workflow that can be a standard at the company. Before we talk about what that api first process looks like these are the values that we always kept in the back of our minds when creating it.
  • #7: An API process that…. Increase efficiency : more opportunities for teams to work in parallel, also efficient in the sense that if a better api tool comes out tmmrw, it should be easy to switch out tool so a very flexible architecture too. More opportunity for automation: The fact that the spec is machine readable allows us to be able to automate testing, documentation like never before Increase Usability for our end users: putting design first so our apis are trivial to use. Being able to refer to documentation easily to help the customer understand the apis This is our mindset we went in with when we were planning how we want to bring API First into our organization. What we’re going to go through next is that API First workflow that we have envisioned for SAS And this is the design we work towards every day to implement.
  • #9: 1. Since the api specification is both machine readable and human readable, it could be leveraged by api tools for various purpose
  • #10: Right, so this is the people and the process So this is the who and the what. If we direct our eyes to the key, a purple diamond is a human (developer, tester, technical writer), and the square is a robot. Linting- guardrails to ensure their writing an effective spec Mock server: gives the person who writing the spec an idea of how the api would look and feel. They make api calls to this mock server and it actually returns mock data. So you can really get a feel like does the way this api works make sense Testers: a mock server is started for that approved API spec. The testers are notified- hey the mock server is up for the api spec- go test it. What that means is the testers can test the api, and create unit tests for that api before it’s ever even built. So then later, when the api is actually built- they can just use those same test cases for that code Client code is generated: what does it look like to call this api in python Documentation is generated: gives the technical writers a starting point- that generated doc would already have examples in it and what not Server code generated: finally, a boiler plate server code is generated for the developers to extract from and add more meat. We spent a good amount of effort vetting out server generator code tools. And the one we landed on, the idea is that it generates a file of A boiler plate meaning that it takes the functions from the spec and creates the functions signature in go for the developer to add logic to. After the developer adds logic, contract testing happens. Does the code match the contract (the spec) no? developer has to redo logic. Yes? Then it passes and the testers test the code Analytic cloud team was saying that they’ve seen a huge increase in productivity here because the testers can use the same tests they used against the spec, against the code So this workflow is the people and the process, next Yantian is going to talk about the technology. She’s going to talk about our “how we’re bring api first to sas” at a more granular level specifically about the pipeline