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) 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