SlideShare a Scribd company logo
Case study:
Integration and
automation create
delightful API docs
© 2019 IBM Corporation
API the Docs | Case Study: Integration and automation create delightful API docs
Agenda
Today, we’ll show how we generate from OpenAPI 2 or 3, Markdown,
and an SDK generator project.
We'll show our authoring environment and fast, automated build.
Finally, some bits about how we promote quality from up front
guidance to post-build dashboards.
2
© 2019 IBM Corporation
Who we are | IBM Cloud
Allen Dean
Senior Content Strategist, IBM
Watson Developer Experience
Jenifer Schlotfeldt
Content Experience Architect,
IBM Cloud
3
© 2019 IBM Corporation
Scope and strategy | Volume, scale, goals
Volume and scale
• IBM Cloud has over 190 services, and customers look for one place to find all the API Docs
available
Support developers and writers 
• Swagger 2.0 and now OpenAPI 3.0
• Creating non-method front matter and editing descriptions and examples
• Collaborative authoring with SMEs
Improve speed, quality, and compliance
• Decrease time from feature release to documentation and SDK support
• Avoid “copy-and-paste” and other errors from hand-written SDKs and API docs
• Improve and enforce the agreement among the API definition, the API docs, and the SDKs
4
© 2019 IBM Corporation
Metrics and Quality | Analytics and Dashboard
• Automated test cases reported on our Content Quality Dashboard
• since our latest initiative, we’ve seen over 1000% increase in usage
5
© 2019 IBM Corporation
DevOps | Develop. Validate. Build. Deliver.
OpenAPI Definition
Commit
Definition
SDK Tests
Publish via
Continuous
Delivery
Developer
Language SDKs
Validate
Definition
Generate
SDK
Generate
SDK Reference
Automated
Testing
Continuous IntegrationDevelopment Continuous Delivery
Jenkins
© 2019 IBM Corporation
ContentOps | Author. Build. Validate. Deliver.
OpenAPI Definition
Commit in GH
Enterprise
Publish via
Continuous
Delivery
Writer
Validate
Definition
Generate
API Doc
Validate
Markdown Automated
Testing
Continuous IntegrationAuthor Continuous Delivery
Jenkins
Front Matter
API Docs
SDK
Reference
© 2019 IBM Corporation
Authoring | Components
Markdown
• The front matter (non-method) content
• Manually create markdown with attributes (or generate from templates)
OpenAPI definition + extensions
• Generate request example syntax
• Enable or hide features and methods
JSON "blob" (from SDK generator)
• The SDK method info
• All the "middle pane" content for the SDKs
8
© 2019 IBM Corporation
Authoring | IBM Cloud common extensions
9
Property Type Description
x-sdk-exclude boolean
Exclude a method or property from the
SDKs
x-sdk-operations object
Language-specific request examples and
info
x-try-it-out-enabled boolean Display the "Try-it-out" feature
x-version-date string
Minor version constants for the SDK and
front matter content
x-watson-host string
Host value for the API if it doesn't follow
the standard
© 2019 IBM Corporation
Authoring | Front matter templates
10
## Versioning content (all)
This documentation describes the current version of {{serviceName}}, `{{swagger.info.x-version-date}}`.
In some cases, differences in earlier versions are noted in the descriptions of parameters and response
models.
{: tip}
## Authentication example (java)
{: java}
{: right}
```java
IamOptions options = new IamOptions.Builder()
.apiKey("{apikey}")
.build();
{{upperCamelCase sdkName}} {{camelCase sdkName}} = new {{upperCamelCase sdkName}}
({{#if swagger.info.x-version-date}}"{version}", {{/if}}options);
```
Specifies the language
and location to print in the UI
From config file From OpenAPI extension
From OpenAPI extension
From config file
© 2019 IBM Corporation
API reference output | Non-method information
11
Front matter (Markdown)
© 2019 IBM Corporation
Authoring | Request example
12
© 2019 IBM Corporation
API reference output | Organization, definition details, and examples
13
OpenAPI tag
OpenAPI description
OpenAPI summary
OpenAPI x-sdk-operation >
request examples > (lang)
OpenAPI enum
OpenAPI default
OpenAPI parameters
© 2019 IBM Corporation
Authoring | Response example
14
© 2019 IBM Corporation
API reference output | Responses
15
OpenAPI path > responses>
200 > examples
© 2019 IBM Corporation
Authoring | Request example
16
© 2019 IBM Corporation
API reference output | Content per programming language
17
© 2019 IBM Corporation
API reference output | Expanded parameter examples
18
A JSON string in a request
body -- provides detail that we
can't put easily into the right
hand pane
A response example detail that
has more than we can put in
the right hand pane
© 2019 IBM Corporation
Demo | Then, the magic happens…
19
© 2019 IBM Corporation
Resources | Docs and projects
• IBM Cloud API docs: https://cloud.ibm.com/apidocs
• OpenAPI validator: https://github.com/IBM/openapi-validator
• API guidelines: https://github.com/watson-developer-cloud/api-guidelines
• Watson SDKs: https://github.com/watson-developer-cloud/
• Guidelines for SDK compatibility: http://watson-developer-cloud.github.io/api-guidelines/sdk-
compatibility
20
Case Study: Integration Automation Create Delightful API Docs

More Related Content

PDF
An overview of devportal technologies and their (dis)advantages
PDF
API SDK Development – Lessons Learned
PPTX
API First Workflow: How could we have better API Docs through DevOps pipeline
PDF
{Re}designing a Developer Portal
PDF
Leveraging API Docs and Tools at Mercedes-Benz /developers
PPTX
Blood, sweat, and creating an API handbook
PDF
Creating Interactive Docs with Postman
PPTX
Pure APIs: Development workflows for successful API integrations
An overview of devportal technologies and their (dis)advantages
API SDK Development – Lessons Learned
API First Workflow: How could we have better API Docs through DevOps pipeline
{Re}designing a Developer Portal
Leveraging API Docs and Tools at Mercedes-Benz /developers
Blood, sweat, and creating an API handbook
Creating Interactive Docs with Postman
Pure APIs: Development workflows for successful API integrations

What's hot (20)

PDF
GitHub as a Landing Page
PDF
Lessons learned: Choosing your documentation system
PPTX
Tools and techniques for APIs
PDF
Advancing Your API Strategy in an Infrastructure World
PDF
The Inverted Funnel of API Documentation
PPTX
API Conference 2021
PPTX
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
PPTX
API-first development
PDF
apidays LIVE Paris 2021 - Using OpenAPI to configure your API Gateway by Ole ...
PPTX
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
PPTX
SPSCasablanca - SPFx Deployment
PDF
E031202024029
PDF
A quick introduction to GraphQL
PPTX
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
PDF
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
PDF
CI/CD Pipelines for Your Infrastructure...as Code!
PDF
[API World 2021 ] - Understanding Cloud Native Deployment
PPTX
Azure Integration in Production with Logic Apps and more
PPTX
Building Push Triggers for Logic Apps
PPTX
apidays LIVE Australia 2020 - Productising your Microservices as API Products...
GitHub as a Landing Page
Lessons learned: Choosing your documentation system
Tools and techniques for APIs
Advancing Your API Strategy in an Infrastructure World
The Inverted Funnel of API Documentation
API Conference 2021
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
API-first development
apidays LIVE Paris 2021 - Using OpenAPI to configure your API Gateway by Ole ...
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
SPSCasablanca - SPFx Deployment
E031202024029
A quick introduction to GraphQL
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
CI/CD Pipelines for Your Infrastructure...as Code!
[API World 2021 ] - Understanding Cloud Native Deployment
Azure Integration in Production with Logic Apps and more
Building Push Triggers for Logic Apps
apidays LIVE Australia 2020 - Productising your Microservices as API Products...
Ad

Similar to Case Study: Integration Automation Create Delightful API Docs (18)

PDF
Application Discovery! The Gift That Keeps on Giving
PDF
Application Discovery! The Gift That Keeps on Giving
PDF
DevOps Spain 2019. Pedro Mendoza-AWS
PDF
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
PDF
APIdays Barcelona 2019 - How a Cloud native Architecture helps to drive Busin...
PDF
Revolutionize the API Economy with IBM WebSphere Connect
PDF
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
PDF
Serverless Beyond Functions - CTO Club Made in JLM
PPTX
Do Try This at Home! Extend IBM Connections using IBM Worklight
PPTX
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platform
PDF
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...
PPTX
AWS DevDay Cologne - CI/CD for modern applications
PDF
Deploy a web API in 15'
PDF
Dev ops for z
PDF
IBM Z for the Digital Enterprise - DevOps for Z
PPTX
API Design – More than just a Payload Definition
PPTX
AWS Jozi Meetup Developing Modern Applications in the Cloud
PPTX
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
DevOps Spain 2019. Pedro Mendoza-AWS
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
APIdays Barcelona 2019 - How a Cloud native Architecture helps to drive Busin...
Revolutionize the API Economy with IBM WebSphere Connect
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Serverless Beyond Functions - CTO Club Made in JLM
Do Try This at Home! Extend IBM Connections using IBM Worklight
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platform
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...
AWS DevDay Cologne - CI/CD for modern applications
Deploy a web API in 15'
Dev ops for z
IBM Z for the Digital Enterprise - DevOps for Z
API Design – More than just a Payload Definition
AWS Jozi Meetup Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
Ad

More from Pronovix (20)

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

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Electronic commerce courselecture one. Pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Cloud computing and distributed systems.
PDF
Encapsulation theory and applications.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
cuic standard and advanced reporting.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
Programs and apps: productivity, graphics, security and other tools
Electronic commerce courselecture one. Pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Encapsulation_ Review paper, used for researhc scholars
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Empathic Computing: Creating Shared Understanding
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectroscopy.pptx food analysis technology
Cloud computing and distributed systems.
Encapsulation theory and applications.pdf
Understanding_Digital_Forensics_Presentation.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
Reach Out and Touch Someone: Haptics and Empathic Computing
cuic standard and advanced reporting.pdf
Review of recent advances in non-invasive hemoglobin estimation

Case Study: Integration Automation Create Delightful API Docs

  • 1. Case study: Integration and automation create delightful API docs
  • 2. © 2019 IBM Corporation API the Docs | Case Study: Integration and automation create delightful API docs Agenda Today, we’ll show how we generate from OpenAPI 2 or 3, Markdown, and an SDK generator project. We'll show our authoring environment and fast, automated build. Finally, some bits about how we promote quality from up front guidance to post-build dashboards. 2
  • 3. © 2019 IBM Corporation Who we are | IBM Cloud Allen Dean Senior Content Strategist, IBM Watson Developer Experience Jenifer Schlotfeldt Content Experience Architect, IBM Cloud 3
  • 4. © 2019 IBM Corporation Scope and strategy | Volume, scale, goals Volume and scale • IBM Cloud has over 190 services, and customers look for one place to find all the API Docs available Support developers and writers  • Swagger 2.0 and now OpenAPI 3.0 • Creating non-method front matter and editing descriptions and examples • Collaborative authoring with SMEs Improve speed, quality, and compliance • Decrease time from feature release to documentation and SDK support • Avoid “copy-and-paste” and other errors from hand-written SDKs and API docs • Improve and enforce the agreement among the API definition, the API docs, and the SDKs 4
  • 5. © 2019 IBM Corporation Metrics and Quality | Analytics and Dashboard • Automated test cases reported on our Content Quality Dashboard • since our latest initiative, we’ve seen over 1000% increase in usage 5
  • 6. © 2019 IBM Corporation DevOps | Develop. Validate. Build. Deliver. OpenAPI Definition Commit Definition SDK Tests Publish via Continuous Delivery Developer Language SDKs Validate Definition Generate SDK Generate SDK Reference Automated Testing Continuous IntegrationDevelopment Continuous Delivery Jenkins
  • 7. © 2019 IBM Corporation ContentOps | Author. Build. Validate. Deliver. OpenAPI Definition Commit in GH Enterprise Publish via Continuous Delivery Writer Validate Definition Generate API Doc Validate Markdown Automated Testing Continuous IntegrationAuthor Continuous Delivery Jenkins Front Matter API Docs SDK Reference
  • 8. © 2019 IBM Corporation Authoring | Components Markdown • The front matter (non-method) content • Manually create markdown with attributes (or generate from templates) OpenAPI definition + extensions • Generate request example syntax • Enable or hide features and methods JSON "blob" (from SDK generator) • The SDK method info • All the "middle pane" content for the SDKs 8
  • 9. © 2019 IBM Corporation Authoring | IBM Cloud common extensions 9 Property Type Description x-sdk-exclude boolean Exclude a method or property from the SDKs x-sdk-operations object Language-specific request examples and info x-try-it-out-enabled boolean Display the "Try-it-out" feature x-version-date string Minor version constants for the SDK and front matter content x-watson-host string Host value for the API if it doesn't follow the standard
  • 10. © 2019 IBM Corporation Authoring | Front matter templates 10 ## Versioning content (all) This documentation describes the current version of {{serviceName}}, `{{swagger.info.x-version-date}}`. In some cases, differences in earlier versions are noted in the descriptions of parameters and response models. {: tip} ## Authentication example (java) {: java} {: right} ```java IamOptions options = new IamOptions.Builder() .apiKey("{apikey}") .build(); {{upperCamelCase sdkName}} {{camelCase sdkName}} = new {{upperCamelCase sdkName}} ({{#if swagger.info.x-version-date}}"{version}", {{/if}}options); ``` Specifies the language and location to print in the UI From config file From OpenAPI extension From OpenAPI extension From config file
  • 11. © 2019 IBM Corporation API reference output | Non-method information 11 Front matter (Markdown)
  • 12. © 2019 IBM Corporation Authoring | Request example 12
  • 13. © 2019 IBM Corporation API reference output | Organization, definition details, and examples 13 OpenAPI tag OpenAPI description OpenAPI summary OpenAPI x-sdk-operation > request examples > (lang) OpenAPI enum OpenAPI default OpenAPI parameters
  • 14. © 2019 IBM Corporation Authoring | Response example 14
  • 15. © 2019 IBM Corporation API reference output | Responses 15 OpenAPI path > responses> 200 > examples
  • 16. © 2019 IBM Corporation Authoring | Request example 16
  • 17. © 2019 IBM Corporation API reference output | Content per programming language 17
  • 18. © 2019 IBM Corporation API reference output | Expanded parameter examples 18 A JSON string in a request body -- provides detail that we can't put easily into the right hand pane A response example detail that has more than we can put in the right hand pane
  • 19. © 2019 IBM Corporation Demo | Then, the magic happens… 19
  • 20. © 2019 IBM Corporation Resources | Docs and projects • IBM Cloud API docs: https://cloud.ibm.com/apidocs • OpenAPI validator: https://github.com/IBM/openapi-validator • API guidelines: https://github.com/watson-developer-cloud/api-guidelines • Watson SDKs: https://github.com/watson-developer-cloud/ • Guidelines for SDK compatibility: http://watson-developer-cloud.github.io/api-guidelines/sdk- compatibility 20