SlideShare a Scribd company logo
1 of 53
PUBLISHING REST API
DOCUMENTATION
BY TOM JOHNSON
IDRATHERBEWRITING.COM
STC Summit 2015  Columbus, Ohio  @tomjohnson
WORKSHOP CONVENTIONS
• Access the workshop course at
http://idratherberwriting.com/publishingapidocs
• 1.1 Numbers in slide headings refers to the place in the
course.
•  This icon indicates an activity you’re supposed to do.
• If you get lost, read the course page.
1.0 PUBLISHING API DOCS
• Why a course on publishing API docs? What's different?
• Different kinds of APIs
• Platform APIs and REST APIs
1.0 PUBLISHING API DOCS
REST APIs are taking
off in a huge way
Publishing is one
value tech writers can
add to highly technical
content
1.1 BREAKING DOWN API
DOC
• API docs have
tremendous variety
• No common tooling
• Programableweb.co
m: A directory of
API doc sites
1.1 BREAKING DOWN API
DOC
 Browse 5 different API doc sites from the list here:
http://idratherbewriting.com/publishingapidocs1-1
Identifying similar patterns and structures
BREAKING DOWN API DOCS
a. Guides
b. Tutorials
c. Reference
A. GUIDE DOCS
Common sections in guide docs: API overview, Getting
started, Authorization keys, Core concepts, Rate limits,
Code samples, Quick reference, Glossary
B. TUTORIAL DOCS
Getting started tutorials, Hello World tutorials, First steps
C. REFERENCE DOCS
Endpoint docs: Resource descriptions, endpoint
definitions, methods, parameters, request examples,
responses, status codes, code samples
1.2 IF DEVELOPERS WILL
WRITE …
1.2 IF DEVELOPERS WILL
WRITE …
Pros of having
developers write:
• Avoids
documentation drift
• Allows the person
who creates the code
(and so best
understands it) to
also document it
1.2 IF DEVELOPERS WILL
WRITE …
Cons of having
developers write:
• The curse of knowledge
• Not task-focused
• Output doesn't integrate
with user guide
• Gives illusion of having
complete doc
1.3 GENERATING REFERENCE
DOCS FROM SOURCE (MIREDOT)
1.3 GENERATING REFERENCE
DOCS FROM SOURCE (MIREDOT)
/**
* Update category name and description. Cannot
be used to edit products in this category.
*
* @param categoryId The id of the category that
will be updated
* @param category The category details
* @summary Update category name and description
*/
@PUT
@Path("/category/{id}")
@Consumes({MediaType.APPLICATION_XML,
MediaType.APPLICATION_JSON})
public void updateCategory(@PathParam("id") Long
categoryId, Category category);
1.3 GENERATING REFERENCE
DOCS FROM SOURCE (MIREDOT)
1.3 GENERATING REFERENCE
DOCS FROM SOURCE
 Browse the Miredot source code:
https://github.com/Qmino/miredot-
petstore/blob/master/src/main/java/com/qmino/miredot/pets
tore/service/CatalogService.java
 Browse the Miredot sample output:
http://miredot.com/exampledocs/
1.4 GITHUB WIKIS AND
MARKDOWN
• Github wikis as
complementary
repositories
• Markdown syntax
• The wiki repository
path
1.4 GITHUB WIKIS AND
MARKDOWN
• Treat doc as code
• Working locally
allows you to
leverage other
tools
• Limitations
1.4 GITHUB WIKIS AND
MARKDOWN
See the instructions at
http://idratherbewriting.com/publishingapidocs1-4/
 a. Publish a sample file on Github
 b. Save the Github repository locally
 c. Make a change locally and commit it to the repository
1.5 CUSTOM SCRIPTS FOR
HYBRID SOLUTIONS
Source code
to JSON
Scripts import
JSON
Web CMS
pushes JSON
into templates
1.5 CUSTOM SCRIPTS FOR
HYBRID SOLUTIONS
• Solution at Badgeville
• Use scripts to generate JSON from source code
• Import the JSON into your web CMS
• Developing custom solutions
1.6 SPEC-GENERATED DOCS
(SWAGGER)
- Swagger
- RAML
- API Blueprint
1.6 SPEC-GENERATED DOCS
(SWAGGER)
• Specs replace program-specific doc blocks
• Sorting out the Swagger components
- Swagger spec
- Swagger editor
- Swagger UI
• Swagger libraries
• Limitations with spec-driven documentation
1.6 SPEC-GENERATED DOCS
(SWAGGER)
 Check out some Swagger implementations:
• Reverb: https://reverb.com/swagger#!/accounts
• VocaDB: http://vocadb.net/swagger/ui/index
• Watson Developer Cloud:
http://www.ibm.com/smarterplanet/us/en/ibmwatson/develope
rcloud/apis/
1.6 SPEC-GENERATED DOCS
(SWAGGER)
See instructions at
http://idratherbewriting.com/publishingapidocs1-6
 a. Create a Swagger spec file
 b. Set Up the Swagger UI
 c. Upload the Files to a Web Host
1.7 API BLUEPRINT
1.7 API BLUEPRINT
• API Blueprint is another spec
• Sample blueprint
• Parsing the blueprint
1.7 API BLUEPRINT
 Create a sample HTML output using API Blueprint and
Apiary
 a. Create a new Apiary project
 b. Interact with the API on Apiary
See instructions at
http://idratherbewriting.com/publishingapidocs1-7/.
1.8 STATIC SITE GENERATORS
(SUCH AS JEKYLL)
• What are static
site generators
• Static site
generators give
you a flexible
web platform
1.8 STATIC SITE GENERATORS
(SUCH AS JEKYLL)
 Publish the surfreport in a Jekyll theme on CloudCannon
 Follow the instructions here:
http://idratherbewriting.com/publishingapidocs1-8
1.9 CUSTOM UX SOLUTIONS
• Beautiful API
doc sites
require front-
end design
skills
• When it makes
sense to
partner with UX
• Web platform
languages
2.0 API DOCUMENTATION-ONLY
PUBLISHING PLATFORMS
• Software as a
service sites
• No need to
spend time
developing your
own site
2.0 API DOCUMENTATION-ONLY
PUBLISHING PLATFORMS
 Publish endpoint documentation on readme.io
 See the instructions at
http://idratherbewriting.com/publishingapidocs2-0
2.1 HELP AUTHORING TOOLS
• Can I use a help
authoring tool?
2.1 HELP AUTHORING TOOLS
• Pros of using a help authoring tool
• Comfortable authoring environment for writers.
• Integrates reference information with guides and tutorials.
• Handles the toughest tech comm scenarios
• HATs reinforce the fact that API doc is more than
endpoints
2.1 HELP AUTHORING TOOLS
• Cons of using a help authoring tool
• Most HATs don't run on Macs
• Dated UI won't help sell the product
• Doesn't integrate with other site components
• Removes authoring capability from developers
2.2 DESIGN PATTERNS
• Design patterns are
recurring design
themes
2.2 DESIGN PATTERNS
Several design patterns with
API docs
1. Structure and templates
2. Website platform
3. Abundant code
examples
4. Longish pages
5. Interactive API explorers
2.2 DESIGN PATTERNS
Several non-patterns with
API docs:
• PDF output
• Mobile display
• Comments on pages
• Video tutorials
2.3 PATTERN: STRUCTURE
AND TEMPLATES
2.3 PATTERN 1: STRUCTURE
AND TEMPLATES
• Using a template
• Pushing values into more
stylized outputs
• Templates in Jekyll
• Templates make it easy to
change display globally
2.4 PATTERN 2: WEBSITE
PLATFORM
• One integrated
website
• Documentation as
product interface
• Integrating
information across
the entire site
2.5 PATTERN 3: ABUNDANT
CODE SAMPLES
• Developers love code
examples
• Syntax highlighting
• Code formatting
2.6 PATTERN 4: LONG-ISH
PAGES
• Minimize clicking
• Examples of long pages
2.6 PATTERN 4: LONG-ISH
PAGES
Why long pages?
• Provides the big picture
• Many platforms lack search
• Everything is at your fingertips
• Today's navigation controls are sophisticated
Is it a best practice to make long pages?
2.7 PATTERN 5: API
INTERACTIVITY
• API explorers
• Novel or actually
instructive?
• Dynamically populated
code samples with API
keys
2.8 CHALLENGING FACTORS
Versioning Translation
Single
sourcing
PDF
2.9 TOOLS VERSUS
CONTENT
3.0 CONCLUSION
Questions to consider
• Will developers be writing or contributing to the content?
• Does your security group restrict you from using third-
party platforms to host documentation?
• Do you have a budget to pay a third-party platform for
hosting?
• Do you want to manage the web platform details yourself
or offload this onto another service?
3.0 CONCLUSION
Questions to consider
• How many endpoints do you have to document?
• Should you push documentation from the source into your
documentation
• Can the documentation need be visible on the web, or does it
need to be private?
• To what extent do you want customers to have a one-stop-
shopping experience -- reading docs, logging support tickets,
posting to forums, viewing news?
• Do you have UX resources to help you build a solution?
THANKS!
Tom Johnson
idratherbewriting.com
tomjohnson1492@gmail.com
IMAGE CREDITS
Most images are screenshots linked to a webpage, but
some are from Flickr. Required attribution is as follows:
Structure, https://flic.kr/p/oFD6MM Rafal Zych
Earth patterns. https://flic.kr/p/ssQqiL Evriel Venefice
Dave’s Bike Tools, https://flic.kr/p/QMVMw Bri Pettis,

More Related Content

What's hot

API workshop: Deep dive into Java
API workshop: Deep dive into JavaAPI workshop: Deep dive into Java
API workshop: Deep dive into JavaTom Johnson
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)Tom Johnson
 
Writing code samples for API/SDK documentation
Writing code samples for API/SDK documentationWriting code samples for API/SDK documentation
Writing code samples for API/SDK documentationTom Johnson
 
API Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterAPI Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterTom Johnson
 
Moving into API documentation writing
Moving into API documentation writingMoving into API documentation writing
Moving into API documentation writingEllis Pratt
 
Aye, Aye, API - What makes Technical Communicators uneasy about API document...
Aye, Aye, API  - What makes Technical Communicators uneasy about API document...Aye, Aye, API  - What makes Technical Communicators uneasy about API document...
Aye, Aye, API - What makes Technical Communicators uneasy about API document...Ellis Pratt
 
Web components - The Future is Here
Web components - The Future is HereWeb components - The Future is Here
Web components - The Future is HereGil Fink
 
Process-oriented reactive service architecture
Process-oriented reactive service architectureProcess-oriented reactive service architecture
Process-oriented reactive service architecturePeter Hilton
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsTroy Miles
 
HTTP demystified for web developers
HTTP demystified for web developersHTTP demystified for web developers
HTTP demystified for web developersPeter Hilton
 
Microservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and DockerMicroservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and DockerDhilipsiva DS
 
CodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comCodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comChristopher Cubos
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopTessa Mero
 
Let's Build a Chatbot
Let's Build a ChatbotLet's Build a Chatbot
Let's Build a ChatbotTessa Mero
 
.NET Recommended Resources
.NET Recommended Resources.NET Recommended Resources
.NET Recommended ResourcesGreg Sohl
 
Activate bots within SharePoint Framework
Activate bots within SharePoint FrameworkActivate bots within SharePoint Framework
Activate bots within SharePoint FrameworkKushan Lahiru Perera
 
API Documentation Meetup 2016, London
API Documentation Meetup 2016, LondonAPI Documentation Meetup 2016, London
API Documentation Meetup 2016, LondonChristian Heidenreich
 
PHP and Zend Framework on Windows
PHP and Zend Framework on WindowsPHP and Zend Framework on Windows
PHP and Zend Framework on WindowsShahar Evron
 
Three Developer Behaviors to Eliminate 85 Percent of Accessibility Defects
Three Developer Behaviors to Eliminate 85 Percent of Accessibility DefectsThree Developer Behaviors to Eliminate 85 Percent of Accessibility Defects
Three Developer Behaviors to Eliminate 85 Percent of Accessibility DefectsSean Kelly
 
Top Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To KnowTop Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To KnowPixel Crayons
 

What's hot (20)

API workshop: Deep dive into Java
API workshop: Deep dive into JavaAPI workshop: Deep dive into Java
API workshop: Deep dive into Java
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
 
Writing code samples for API/SDK documentation
Writing code samples for API/SDK documentationWriting code samples for API/SDK documentation
Writing code samples for API/SDK documentation
 
API Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterAPI Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC Chapter
 
Moving into API documentation writing
Moving into API documentation writingMoving into API documentation writing
Moving into API documentation writing
 
Aye, Aye, API - What makes Technical Communicators uneasy about API document...
Aye, Aye, API  - What makes Technical Communicators uneasy about API document...Aye, Aye, API  - What makes Technical Communicators uneasy about API document...
Aye, Aye, API - What makes Technical Communicators uneasy about API document...
 
Web components - The Future is Here
Web components - The Future is HereWeb components - The Future is Here
Web components - The Future is Here
 
Process-oriented reactive service architecture
Process-oriented reactive service architectureProcess-oriented reactive service architecture
Process-oriented reactive service architecture
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
HTTP demystified for web developers
HTTP demystified for web developersHTTP demystified for web developers
HTTP demystified for web developers
 
Microservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and DockerMicroservices with Swagger, Flask and Docker
Microservices with Swagger, Flask and Docker
 
CodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comCodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.com
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot Workshop
 
Let's Build a Chatbot
Let's Build a ChatbotLet's Build a Chatbot
Let's Build a Chatbot
 
.NET Recommended Resources
.NET Recommended Resources.NET Recommended Resources
.NET Recommended Resources
 
Activate bots within SharePoint Framework
Activate bots within SharePoint FrameworkActivate bots within SharePoint Framework
Activate bots within SharePoint Framework
 
API Documentation Meetup 2016, London
API Documentation Meetup 2016, LondonAPI Documentation Meetup 2016, London
API Documentation Meetup 2016, London
 
PHP and Zend Framework on Windows
PHP and Zend Framework on WindowsPHP and Zend Framework on Windows
PHP and Zend Framework on Windows
 
Three Developer Behaviors to Eliminate 85 Percent of Accessibility Defects
Three Developer Behaviors to Eliminate 85 Percent of Accessibility DefectsThree Developer Behaviors to Eliminate 85 Percent of Accessibility Defects
Three Developer Behaviors to Eliminate 85 Percent of Accessibility Defects
 
Top Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To KnowTop Web Development Frameworks Comparison: All You Need To Know
Top Web Development Frameworks Comparison: All You Need To Know
 

Viewers also liked

API Documentation presentation to East Bay STC Chapter
API Documentation presentation to East Bay STC ChapterAPI Documentation presentation to East Bay STC Chapter
API Documentation presentation to East Bay STC ChapterTom Johnson
 
The victorian period
The victorian periodThe victorian period
The victorian periodanarosaleda
 
Jane Austen Powerpoint
Jane  Austen PowerpointJane  Austen Powerpoint
Jane Austen Powerpointjharwell57294
 
Major themes of joseph andrews
Major themes of  joseph andrewsMajor themes of  joseph andrews
Major themes of joseph andrewsFRK NIAZI
 
George eliot as a novelist
George eliot as a novelistGeorge eliot as a novelist
George eliot as a novelistkashmirabajadeja
 
The mill on the floss
The mill on the flossThe mill on the floss
The mill on the flossKainat Rana
 
3.1. george eliot
3.1. george eliot3.1. george eliot
3.1. george eliotKamal Gupta
 
George Eliot's The Mill on the Floss
George Eliot's The Mill on the FlossGeorge Eliot's The Mill on the Floss
George Eliot's The Mill on the FlossFarnood Jahangiri
 
George Eliot as a novelist
George Eliot as a novelistGeorge Eliot as a novelist
George Eliot as a novelistNeha Rathod
 
18th century poetry
18th century poetry18th century poetry
18th century poetryalejandrabs
 
Thomas hardy
Thomas hardyThomas hardy
Thomas hardyfoster2
 
History of novels
History of novelsHistory of novels
History of novelsnn555818
 

Viewers also liked (20)

API Documentation presentation to East Bay STC Chapter
API Documentation presentation to East Bay STC ChapterAPI Documentation presentation to East Bay STC Chapter
API Documentation presentation to East Bay STC Chapter
 
The victorian period
The victorian periodThe victorian period
The victorian period
 
Jane Austen Powerpoint
Jane  Austen PowerpointJane  Austen Powerpoint
Jane Austen Powerpoint
 
Major themes of joseph andrews
Major themes of  joseph andrewsMajor themes of  joseph andrews
Major themes of joseph andrews
 
Joseph Andrews
Joseph Andrews Joseph Andrews
Joseph Andrews
 
George eliot as a novelist
George eliot as a novelistGeorge eliot as a novelist
George eliot as a novelist
 
The mill on the floss
The mill on the flossThe mill on the floss
The mill on the floss
 
Novel Joseph Andrews
Novel Joseph AndrewsNovel Joseph Andrews
Novel Joseph Andrews
 
3.1. george eliot
3.1. george eliot3.1. george eliot
3.1. george eliot
 
Joseph andrews
Joseph andrewsJoseph andrews
Joseph andrews
 
George Eliot
George EliotGeorge Eliot
George Eliot
 
Jane Austen
Jane AustenJane Austen
Jane Austen
 
George Eliot's The Mill on the Floss
George Eliot's The Mill on the FlossGeorge Eliot's The Mill on the Floss
George Eliot's The Mill on the Floss
 
George Eliot as a novelist
George Eliot as a novelistGeorge Eliot as a novelist
George Eliot as a novelist
 
18th century poetry
18th century poetry18th century poetry
18th century poetry
 
Jane Austen
Jane AustenJane Austen
Jane Austen
 
Thomas Hardy
Thomas HardyThomas Hardy
Thomas Hardy
 
Thomas hardy
Thomas hardyThomas hardy
Thomas hardy
 
Samuel johnson
Samuel johnsonSamuel johnson
Samuel johnson
 
History of novels
History of novelsHistory of novels
History of novels
 

Similar to API Doc Platforms & Tools

Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
Practical Application of API-First in microservices development
Practical Application of API-First in microservices developmentPractical Application of API-First in microservices development
Practical Application of API-First in microservices developmentChavdar Baikov
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserStrongback Consulting
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webpartsPrabhu Nehru
 
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxDataUsing the Java Client Library by Noah Crowley, DevRel | InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxDataInfluxData
 
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...InfluxData
 
Adobe App Builder Overview & Get Started Guideline
Adobe App Builder  Overview & Get Started GuidelineAdobe App Builder  Overview & Get Started Guideline
Adobe App Builder Overview & Get Started GuidelineTuyen Nguyen Ngoc
 
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 DevPortalsAxway
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source ContributionsNeev Technologies
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17Phil Wilkins
 
APIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web APIAPIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web APIRestlet
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Leonardo Farias
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
API Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie MitraAPI Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie MitraCA API Management
 
Building SharePoint Online applications using Napa Office 365 Development Tools
Building SharePoint Online applications using Napa Office 365 Development ToolsBuilding SharePoint Online applications using Napa Office 365 Development Tools
Building SharePoint Online applications using Napa Office 365 Development ToolsGunnar Peipman
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...AEGIS-ACCESSIBLE Projects
 

Similar to API Doc Platforms & Tools (20)

Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
Practical Application of API-First in microservices development
Practical Application of API-First in microservices developmentPractical Application of API-First in microservices development
Practical Application of API-First in microservices development
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webparts
 
API Conference 2021
API Conference 2021API Conference 2021
API Conference 2021
 
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxDataUsing the Java Client Library by Noah Crowley, DevRel | InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
 
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
 
Adobe App Builder Overview & Get Started Guideline
Adobe App Builder  Overview & Get Started GuidelineAdobe App Builder  Overview & Get Started Guideline
Adobe App Builder Overview & Get Started Guideline
 
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
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
APIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web APIAPIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web API
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript
 
Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
API Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie MitraAPI Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie Mitra
 
Building SharePoint Online applications using Napa Office 365 Development Tools
Building SharePoint Online applications using Napa Office 365 Development ToolsBuilding SharePoint Online applications using Napa Office 365 Development Tools
Building SharePoint Online applications using Napa Office 365 Development Tools
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 

Recently uploaded (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 

API Doc Platforms & Tools

  • 1. PUBLISHING REST API DOCUMENTATION BY TOM JOHNSON IDRATHERBEWRITING.COM STC Summit 2015  Columbus, Ohio  @tomjohnson
  • 2. WORKSHOP CONVENTIONS • Access the workshop course at http://idratherberwriting.com/publishingapidocs • 1.1 Numbers in slide headings refers to the place in the course. •  This icon indicates an activity you’re supposed to do. • If you get lost, read the course page.
  • 3. 1.0 PUBLISHING API DOCS • Why a course on publishing API docs? What's different? • Different kinds of APIs • Platform APIs and REST APIs
  • 4. 1.0 PUBLISHING API DOCS REST APIs are taking off in a huge way Publishing is one value tech writers can add to highly technical content
  • 5. 1.1 BREAKING DOWN API DOC • API docs have tremendous variety • No common tooling • Programableweb.co m: A directory of API doc sites
  • 6. 1.1 BREAKING DOWN API DOC  Browse 5 different API doc sites from the list here: http://idratherbewriting.com/publishingapidocs1-1 Identifying similar patterns and structures
  • 7. BREAKING DOWN API DOCS a. Guides b. Tutorials c. Reference
  • 8. A. GUIDE DOCS Common sections in guide docs: API overview, Getting started, Authorization keys, Core concepts, Rate limits, Code samples, Quick reference, Glossary
  • 9. B. TUTORIAL DOCS Getting started tutorials, Hello World tutorials, First steps
  • 10. C. REFERENCE DOCS Endpoint docs: Resource descriptions, endpoint definitions, methods, parameters, request examples, responses, status codes, code samples
  • 11. 1.2 IF DEVELOPERS WILL WRITE …
  • 12. 1.2 IF DEVELOPERS WILL WRITE … Pros of having developers write: • Avoids documentation drift • Allows the person who creates the code (and so best understands it) to also document it
  • 13. 1.2 IF DEVELOPERS WILL WRITE … Cons of having developers write: • The curse of knowledge • Not task-focused • Output doesn't integrate with user guide • Gives illusion of having complete doc
  • 14. 1.3 GENERATING REFERENCE DOCS FROM SOURCE (MIREDOT)
  • 15. 1.3 GENERATING REFERENCE DOCS FROM SOURCE (MIREDOT) /** * Update category name and description. Cannot be used to edit products in this category. * * @param categoryId The id of the category that will be updated * @param category The category details * @summary Update category name and description */ @PUT @Path("/category/{id}") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public void updateCategory(@PathParam("id") Long categoryId, Category category);
  • 16. 1.3 GENERATING REFERENCE DOCS FROM SOURCE (MIREDOT)
  • 17. 1.3 GENERATING REFERENCE DOCS FROM SOURCE  Browse the Miredot source code: https://github.com/Qmino/miredot- petstore/blob/master/src/main/java/com/qmino/miredot/pets tore/service/CatalogService.java  Browse the Miredot sample output: http://miredot.com/exampledocs/
  • 18. 1.4 GITHUB WIKIS AND MARKDOWN • Github wikis as complementary repositories • Markdown syntax • The wiki repository path
  • 19. 1.4 GITHUB WIKIS AND MARKDOWN • Treat doc as code • Working locally allows you to leverage other tools • Limitations
  • 20. 1.4 GITHUB WIKIS AND MARKDOWN See the instructions at http://idratherbewriting.com/publishingapidocs1-4/  a. Publish a sample file on Github  b. Save the Github repository locally  c. Make a change locally and commit it to the repository
  • 21. 1.5 CUSTOM SCRIPTS FOR HYBRID SOLUTIONS Source code to JSON Scripts import JSON Web CMS pushes JSON into templates
  • 22. 1.5 CUSTOM SCRIPTS FOR HYBRID SOLUTIONS • Solution at Badgeville • Use scripts to generate JSON from source code • Import the JSON into your web CMS • Developing custom solutions
  • 23. 1.6 SPEC-GENERATED DOCS (SWAGGER) - Swagger - RAML - API Blueprint
  • 24. 1.6 SPEC-GENERATED DOCS (SWAGGER) • Specs replace program-specific doc blocks • Sorting out the Swagger components - Swagger spec - Swagger editor - Swagger UI • Swagger libraries • Limitations with spec-driven documentation
  • 25. 1.6 SPEC-GENERATED DOCS (SWAGGER)  Check out some Swagger implementations: • Reverb: https://reverb.com/swagger#!/accounts • VocaDB: http://vocadb.net/swagger/ui/index • Watson Developer Cloud: http://www.ibm.com/smarterplanet/us/en/ibmwatson/develope rcloud/apis/
  • 26. 1.6 SPEC-GENERATED DOCS (SWAGGER) See instructions at http://idratherbewriting.com/publishingapidocs1-6  a. Create a Swagger spec file  b. Set Up the Swagger UI  c. Upload the Files to a Web Host
  • 28. 1.7 API BLUEPRINT • API Blueprint is another spec • Sample blueprint • Parsing the blueprint
  • 29. 1.7 API BLUEPRINT  Create a sample HTML output using API Blueprint and Apiary  a. Create a new Apiary project  b. Interact with the API on Apiary See instructions at http://idratherbewriting.com/publishingapidocs1-7/.
  • 30. 1.8 STATIC SITE GENERATORS (SUCH AS JEKYLL) • What are static site generators • Static site generators give you a flexible web platform
  • 31. 1.8 STATIC SITE GENERATORS (SUCH AS JEKYLL)  Publish the surfreport in a Jekyll theme on CloudCannon  Follow the instructions here: http://idratherbewriting.com/publishingapidocs1-8
  • 32. 1.9 CUSTOM UX SOLUTIONS • Beautiful API doc sites require front- end design skills • When it makes sense to partner with UX • Web platform languages
  • 33. 2.0 API DOCUMENTATION-ONLY PUBLISHING PLATFORMS • Software as a service sites • No need to spend time developing your own site
  • 34. 2.0 API DOCUMENTATION-ONLY PUBLISHING PLATFORMS  Publish endpoint documentation on readme.io  See the instructions at http://idratherbewriting.com/publishingapidocs2-0
  • 35. 2.1 HELP AUTHORING TOOLS • Can I use a help authoring tool?
  • 36. 2.1 HELP AUTHORING TOOLS • Pros of using a help authoring tool • Comfortable authoring environment for writers. • Integrates reference information with guides and tutorials. • Handles the toughest tech comm scenarios • HATs reinforce the fact that API doc is more than endpoints
  • 37. 2.1 HELP AUTHORING TOOLS • Cons of using a help authoring tool • Most HATs don't run on Macs • Dated UI won't help sell the product • Doesn't integrate with other site components • Removes authoring capability from developers
  • 38. 2.2 DESIGN PATTERNS • Design patterns are recurring design themes
  • 39. 2.2 DESIGN PATTERNS Several design patterns with API docs 1. Structure and templates 2. Website platform 3. Abundant code examples 4. Longish pages 5. Interactive API explorers
  • 40. 2.2 DESIGN PATTERNS Several non-patterns with API docs: • PDF output • Mobile display • Comments on pages • Video tutorials
  • 42. 2.3 PATTERN 1: STRUCTURE AND TEMPLATES • Using a template • Pushing values into more stylized outputs • Templates in Jekyll • Templates make it easy to change display globally
  • 43. 2.4 PATTERN 2: WEBSITE PLATFORM • One integrated website • Documentation as product interface • Integrating information across the entire site
  • 44. 2.5 PATTERN 3: ABUNDANT CODE SAMPLES • Developers love code examples • Syntax highlighting • Code formatting
  • 45. 2.6 PATTERN 4: LONG-ISH PAGES • Minimize clicking • Examples of long pages
  • 46. 2.6 PATTERN 4: LONG-ISH PAGES Why long pages? • Provides the big picture • Many platforms lack search • Everything is at your fingertips • Today's navigation controls are sophisticated Is it a best practice to make long pages?
  • 47. 2.7 PATTERN 5: API INTERACTIVITY • API explorers • Novel or actually instructive? • Dynamically populated code samples with API keys
  • 48. 2.8 CHALLENGING FACTORS Versioning Translation Single sourcing PDF
  • 50. 3.0 CONCLUSION Questions to consider • Will developers be writing or contributing to the content? • Does your security group restrict you from using third- party platforms to host documentation? • Do you have a budget to pay a third-party platform for hosting? • Do you want to manage the web platform details yourself or offload this onto another service?
  • 51. 3.0 CONCLUSION Questions to consider • How many endpoints do you have to document? • Should you push documentation from the source into your documentation • Can the documentation need be visible on the web, or does it need to be private? • To what extent do you want customers to have a one-stop- shopping experience -- reading docs, logging support tickets, posting to forums, viewing news? • Do you have UX resources to help you build a solution?
  • 53. IMAGE CREDITS Most images are screenshots linked to a webpage, but some are from Flickr. Required attribution is as follows: Structure, https://flic.kr/p/oFD6MM Rafal Zych Earth patterns. https://flic.kr/p/ssQqiL Evriel Venefice Dave’s Bike Tools, https://flic.kr/p/QMVMw Bri Pettis,