/
API Documentation Tool

API Documentation Tool

Requirements from Doc Team

  • Any tool choices shouldn't affect how and when the documentation team works on docstrings for the endpoint classes. 
  • The main priority is having docstrings that are tool independent as much as possible.

History of various tools used at edX

Apiary

  • The solutions team (contact: Matthew Drayer (Deactivated)) has used it during the design phase and for collaboration by multiple editors.
  • They have not used it for live documentation for something that is released. That is, it wasn't a publishing tool that read docstrings from code files and published it in independent form.
  • Example: http://docs.edxcoursemetadataapi.apiary.io/#

Swagger

Django Rest Viewer

Table of Options

 

 Swagger
django-rest-swagger
Apiary & API Blueprint
Recommended ByMark (used at GoDaddy) & Kishore (used at Staples) 
FormatJSONMarkdown
Sponsored byReverbApiary
Spec LicenseASL 2.0MIT
Design Approach

code then publish
bottom-up

publish without/before code
top-down
Authoringany toolapiary.io
Mockingusing CodeGenyes
Server Code
Generate from Code
Django and others(3rd party)
DependenciesPython (2.6.5+), Django (1.5.5+), DRF (2.3.8+)none
SDK code generatorSwagger CodeGen 
Authentication Basic, OAuth2
API version metadatayes 
Stackoverlow questions1,930271
Github stars8,031 (swagger-spec, swagger-ui, swagger-codegen, swagger-core)2,201 (api-blueprint)
Cost https://apiary.io/pricing

Related content

Open edX REST API Conventions
Open edX REST API Conventions
More like this
2015.11.18 API Gateway Goals
2015.11.18 API Gateway Goals
More like this
API Trichotomy Proposal
API Trichotomy Proposal
More like this
Documentation Organization Discussion
Documentation Organization Discussion
More like this
API Architecture Landscape
API Architecture Landscape
More like this