SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
John Williams
Lead Technical Writer, Cloud
MongoDB
Melissa Mahoney
Lead Technical Writer, Cloud
MongoDB
Annotate,
Automate,
& Educate
26 October 2022
Driving generated
OpenAPI documentation
to benefit everyone
Agenda
What problems were we trying to solve?
Getting buy-in and coordinating across
teams
Our implementation
Lessons we learned
What’s next?
Q&A
What problems
were we trying
to solve?
…documented by hand.
44
Resources
220
Endpoints
~3k
Parameters
What problems were we trying to solve?
Users noticed that docs
weren’t always updated
when APIs changed
Out-of-date docs
Code as the ultimate
source of truth to
describe how our APIs
work
Code is canon
Enable writers to work
on impactful content
Empower writers
With OpenAPI
1. Cloud codes.
2. Cloud gives info to Docs.
3. Cloud releases API code.
4. Docs writes API docs.
5. Cloud reviews API docs.
6. Docs publishes API docs.
API docs eventually consistent
with API code publicly.
Before OpenAPI
1. Cloud codes and annotates docs.
2. Docs reviews language.
3. Cloud releases API code.
4. API Docs published automatically.
API docs near immediately
consistent with API code publicly.
Getting buy-in
and coordinating
across teams
#BUILDTOGETHER
Partner with
engineering
Use familiar processes
Big changes can cause
uncertainty; use existing
processes to spread information.
Join a company initiative
Tie your work and its impact
directly to business goals.
Commit to support
Let your cross-team partners
know you’re not disappearing
after the initial push is complete!
Demonstrate value – for everyone
Spend more time on
high-impact content
that requires a human
touch
For writers
Test against the spec,
generate changelogs
and client libraries
For engineering
Accurate, interactive,
always-up-to-date API
docs
For users
Communicate!
4
Proofs of concept
7
Scopes & specs
35+
Approvers
#BUILDTOGETHER
… and then communicate more.
Wiki pages Presentations Office Hours
Slack Channel
Our
implementation
Scraper Script
Before editing After editing
ETL phase and generating annotation blocks
@Operation(
summary = "Return One Project",
operationId = "returnOneProject",
description =
"Returns details about the specified project. Projects group ...",
tags = {"Projects"},
parameters = {
@Parameter(
name = "userId",
description = "Unique 24-hexadecimal string that identifies...",
in = ParameterIn.PATH,
schema =
@Schema(
type = "string",
minLength = 24,
maxLength = 24,
pattern = OpenApiConst.OBJECT_ID_REGEX),
required = true)
}
responses = {
@ApiResponse(
responseCode = "200",
description = "OK",
content =
@Content(
mediaType = "application/json",
schema = @Schema(implementation = ApiAtlasGroupView.class))),
@ApiResponse(responseCode = "404", ref = "notFound"),
@ApiResponse(responseCode = "400", ref = "badRequest"),
@ApiResponse(responseCode = "500", ref = "internalServerError")
})
BACKFILL
For each resource,
writers pasted in
annotation blocks
Don’t break the
build
Ensure accuracy
and completeness
Seek PR approval
from engineering
Then we published!
Hand-off to
engineering
With OpenAPI
1. Cloud codes.
2. Cloud gives info to Docs.
3. Cloud releases API code.
4. Docs writes API docs.
5. Cloud reviews API docs.
6. Docs publishes API docs.
API docs eventually consistent
with API code publicly.
Before OpenAPI
1. Cloud codes and annotates docs.
2. Docs reviews language.
3. Cloud releases API code.
4. API Docs published automatically.
API docs near immediately
consistent with API code publicly.
Lessons we
learned
It was a journey.
Proof of Concept
A writer and an
engineer collaborate
on a basic PoC during
Skunkworks, planting
the seed.
Summer
2017
Spring
2020
Fall
2020
Summer
2021
Winter
2021-2022
Summer
2022
Research
An engineer
undertakes a research
spike for
implementation in the
codebase, and several
writers perform a
copy audit of existing
API docs.
More Proofs of
Concept
Several writers
annotate ~10
endpoints of varying
complexity within the
codebase to
demonstrate viability.
Annotations
required in code
The engineering team
implements code
checks that require all
new endpoints to have
annotations.
Annotations
complete
The writing team adds
annotations for all
existing endpoints.
OpenAPI docs
published
All engineering teams
and the writing team
test the OpenAPI docs
to ensure accuracy.
The OpenAPI docs are
published.
COMMUNICATION COORDINATION
Define specific
milestones
Raise awareness
early and often
AUTOMATION COMPATIBILITY
Code might need
to be refactored
Don’t automate
everything
Be the change.
Whatʼs next?
Whatʼs next?
Generate SDKs API tutorials Add more annotations
Q&A
Thank you for
your time.

Weitere ähnliche Inhalte

Ähnlich wie Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone

.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
mwillmer
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
維佋 唐
 
OpenERP Technical Memento
OpenERP Technical MementoOpenERP Technical Memento
OpenERP Technical Memento
Odoo
 

Ähnlich wie Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone (20)

N api - node interactive 2017
N api - node interactive 2017N api - node interactive 2017
N api - node interactive 2017
 
Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortals
 
APIdays Paris 2019 - API Descriptions as Product Code by Phil Sturgeon, Stopl...
APIdays Paris 2019 - API Descriptions as Product Code by Phil Sturgeon, Stopl...APIdays Paris 2019 - API Descriptions as Product Code by Phil Sturgeon, Stopl...
APIdays Paris 2019 - API Descriptions as Product Code by Phil Sturgeon, Stopl...
 
BuddyPress Groups API
BuddyPress Groups APIBuddyPress Groups API
BuddyPress Groups API
 
.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
 
apidays LIVE New York - API Code First vs Design First by Phil Sturgeon
apidays LIVE New York - API Code First vs Design First by Phil Sturgeonapidays LIVE New York - API Code First vs Design First by Phil Sturgeon
apidays LIVE New York - API Code First vs Design First by Phil Sturgeon
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
 
IaC: Tools of the trade
IaC: Tools of the tradeIaC: Tools of the trade
IaC: Tools of the trade
 
AWS_DOP-C02_May_2023-v1.2.pdf
AWS_DOP-C02_May_2023-v1.2.pdfAWS_DOP-C02_May_2023-v1.2.pdf
AWS_DOP-C02_May_2023-v1.2.pdf
 
I Love APIs - Oct 2015
I Love APIs - Oct 2015I Love APIs - Oct 2015
I Love APIs - Oct 2015
 
Survival Strategies: Building your first website for API documentation
Survival Strategies: Building your first website for API documentationSurvival Strategies: Building your first website for API documentation
Survival Strategies: Building your first website for API documentation
 
N api-node summit-2017-final
N api-node summit-2017-finalN api-node summit-2017-final
N api-node summit-2017-final
 
N-API NodeSummit-2017
N-API NodeSummit-2017N-API NodeSummit-2017
N-API NodeSummit-2017
 
apidays LIVE Paris - Exploring an API with Blocks by Larry Kluger
apidays LIVE Paris - Exploring an API with Blocks by Larry Klugerapidays LIVE Paris - Exploring an API with Blocks by Larry Kluger
apidays LIVE Paris - Exploring an API with Blocks by Larry Kluger
 
Prairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API ResponsesPrairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API Responses
 
Documenting REST APIs
Documenting REST APIsDocumenting REST APIs
Documenting REST APIs
 
Continuous Integration and Code Coverage in Xcode
Continuous Integration and Code Coverage in XcodeContinuous Integration and Code Coverage in Xcode
Continuous Integration and Code Coverage in Xcode
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin Pickin
 
OpenERP Technical Memento
OpenERP Technical MementoOpenERP Technical Memento
OpenERP Technical Memento
 

Mehr von Pronovix

Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsInclusive, 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 communitiesCreating API documentation for international communities
Creating API documentation for international communities
Pronovix
 
Docs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation ExperienceDocs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation Experience
Pronovix
 

Mehr von 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 lateBy 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
 
Optimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and FeedbackOptimizing Dev Portals with Analytics and Feedback
Optimizing Dev Portals with Analytics and Feedback
 
Success metrics when launching your first developer portal
Success metrics when launching your first developer portalSuccess metrics when launching your first developer portal
Success metrics when launching your first developer portal
 
Documentation, APIs & AI
Documentation, APIs & AIDocumentation, APIs & AI
Documentation, APIs & AI
 
Making sense of analytics for documentation pages
Making sense of analytics for documentation pagesMaking sense of analytics for documentation pages
Making sense of analytics for documentation pages
 
Feedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiencesFeedback cycles and their role in improving overall developer experiences
Feedback cycles and their role in improving overall developer experiences
 
GraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing DocsGraphQL Isn't An Excuse To Stop Writing Docs
GraphQL Isn't An Excuse To Stop Writing Docs
 
API Documentation For Web3
API Documentation For Web3API Documentation For Web3
API Documentation For Web3
 
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 designWhy 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
 
unREST among the docs
unREST among the docsunREST among the docs
unREST among the docs
 
Developing a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIsDeveloping a best-in-class deprecation policy for your APIs
Developing a best-in-class deprecation policy for your APIs
 
What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?What do developers do when it comes to understanding and using APIs?
What do developers do when it comes to understanding and using APIs?
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and ConfigurationsInclusive, Accessible Tech: Bias-Free Language in Code and Configurations
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations
 
Creating API documentation for international communities
Creating API documentation for international communitiesCreating API documentation for international communities
Creating API documentation for international communities
 
One Developer Portal to Document Them All
One Developer Portal to Document Them AllOne Developer Portal to Document Them All
One Developer Portal to Document Them All
 
Docs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation ExperienceDocs-as-Code: Evolving the API Documentation Experience
Docs-as-Code: Evolving the API Documentation Experience
 
Developer journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your productDeveloper journey - make it easy for devs to love your product
Developer journey - make it easy for devs to love your product
 
Complexity is not complicatedness
Complexity is not complicatednessComplexity is not complicatedness
Complexity is not complicatedness
 
How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...How cognitive biases and ranking can foster an ineffective architecture and d...
How cognitive biases and ranking can foster an ineffective architecture and d...
 
APIs: Semi-permeable, osmotic interfaces
APIs: Semi-permeable, osmotic interfacesAPIs: Semi-permeable, osmotic interfaces
APIs: Semi-permeable, osmotic interfaces
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Annotate, Automate & Educate: Driving generated OpenAPI docs to benefit everyone

  • 1. John Williams Lead Technical Writer, Cloud MongoDB Melissa Mahoney Lead Technical Writer, Cloud MongoDB Annotate, Automate, & Educate 26 October 2022 Driving generated OpenAPI documentation to benefit everyone
  • 2. Agenda What problems were we trying to solve? Getting buy-in and coordinating across teams Our implementation Lessons we learned What’s next? Q&A
  • 3. What problems were we trying to solve?
  • 5. What problems were we trying to solve? Users noticed that docs weren’t always updated when APIs changed Out-of-date docs Code as the ultimate source of truth to describe how our APIs work Code is canon Enable writers to work on impactful content Empower writers
  • 6. With OpenAPI 1. Cloud codes. 2. Cloud gives info to Docs. 3. Cloud releases API code. 4. Docs writes API docs. 5. Cloud reviews API docs. 6. Docs publishes API docs. API docs eventually consistent with API code publicly. Before OpenAPI 1. Cloud codes and annotates docs. 2. Docs reviews language. 3. Cloud releases API code. 4. API Docs published automatically. API docs near immediately consistent with API code publicly.
  • 8. #BUILDTOGETHER Partner with engineering Use familiar processes Big changes can cause uncertainty; use existing processes to spread information. Join a company initiative Tie your work and its impact directly to business goals. Commit to support Let your cross-team partners know you’re not disappearing after the initial push is complete!
  • 9. Demonstrate value – for everyone Spend more time on high-impact content that requires a human touch For writers Test against the spec, generate changelogs and client libraries For engineering Accurate, interactive, always-up-to-date API docs For users
  • 11. #BUILDTOGETHER … and then communicate more. Wiki pages Presentations Office Hours Slack Channel
  • 15. ETL phase and generating annotation blocks @Operation( summary = "Return One Project", operationId = "returnOneProject", description = "Returns details about the specified project. Projects group ...", tags = {"Projects"}, parameters = { @Parameter( name = "userId", description = "Unique 24-hexadecimal string that identifies...", in = ParameterIn.PATH, schema = @Schema( type = "string", minLength = 24, maxLength = 24, pattern = OpenApiConst.OBJECT_ID_REGEX), required = true) } responses = { @ApiResponse( responseCode = "200", description = "OK", content = @Content( mediaType = "application/json", schema = @Schema(implementation = ApiAtlasGroupView.class))), @ApiResponse(responseCode = "404", ref = "notFound"), @ApiResponse(responseCode = "400", ref = "badRequest"), @ApiResponse(responseCode = "500", ref = "internalServerError") })
  • 16. BACKFILL For each resource, writers pasted in annotation blocks Don’t break the build Ensure accuracy and completeness Seek PR approval from engineering
  • 19. With OpenAPI 1. Cloud codes. 2. Cloud gives info to Docs. 3. Cloud releases API code. 4. Docs writes API docs. 5. Cloud reviews API docs. 6. Docs publishes API docs. API docs eventually consistent with API code publicly. Before OpenAPI 1. Cloud codes and annotates docs. 2. Docs reviews language. 3. Cloud releases API code. 4. API Docs published automatically. API docs near immediately consistent with API code publicly.
  • 21. It was a journey. Proof of Concept A writer and an engineer collaborate on a basic PoC during Skunkworks, planting the seed. Summer 2017 Spring 2020 Fall 2020 Summer 2021 Winter 2021-2022 Summer 2022 Research An engineer undertakes a research spike for implementation in the codebase, and several writers perform a copy audit of existing API docs. More Proofs of Concept Several writers annotate ~10 endpoints of varying complexity within the codebase to demonstrate viability. Annotations required in code The engineering team implements code checks that require all new endpoints to have annotations. Annotations complete The writing team adds annotations for all existing endpoints. OpenAPI docs published All engineering teams and the writing team test the OpenAPI docs to ensure accuracy. The OpenAPI docs are published.
  • 23. AUTOMATION COMPATIBILITY Code might need to be refactored Don’t automate everything
  • 26. Whatʼs next? Generate SDKs API tutorials Add more annotations
  • 27. Q&A