You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

Purpose

The CloudStack API reference pages do not adequately communicate the details of the APIs. This inadequacy of information seems to have affected the user experience of CloudStack APIs.

The purpose of this document is to suggest methods to improve the CloudStack API reference pages. Improved CloudStack API reference pages that adequately describe APIs help users educate themselves about the purpose and usage of the APIs. This knowledge helps them make appropriate decisions when using CloudStack.

References

TBD

Feature Specifications

The new template that is defined for the CloudStack API describes the information that an ideal CloudStack API reference page should contain. Also, this document describes the technical aspects of generating an improved CloudStack API reference.

The current CloudStack API reference page contains the following information:

  • Name of the API, which is the label of the API reference page.
  • Description on the purpose of the API in a single line.
  • List of request parameters, their descriptions in a single line, and information on whether these parameters are mandatory. These information has been documented in a table.
  • List of response tags and their descriptions in a single line. This information has been documented in a table.

How do we create/generate the API reference page now?

CloudStack uses Java docs for creating API reference pages. The developer who create an API enters the descriptions for the API reference page in the @ APICommand annotation field in the code. Then, the API reference pages are generated from the code.

Limitations:

The following are the limitations of the current CloudStack API reference pages:

  • All the information about an API is not documented
  • Descriptions are inadequate to explain the purpose and usage of the API. They are mostly single line descriptions
  • No information on the structure of the request URL. Also, no example for the request URL
  • No information on the success response
  • No information on the error response
  • No information on the limitations of an API

The proposal

The CloudStack API references miss many pieces of information that are crucial for ensuring an excellent user experience. The proposed template for the CloudStack API reference in Appendix A helps you understand these additional information to be documented for the CloudStack API reference pages.

This document does not suggest any major changes to our current approach in creating/generating API reference pages. The developers will continue adding content in the @APICommand annotation fields for the API that they create. The template in Appendix A can guide them in determining the information that they need to add to the @APICommand annotation fields.

Also, this document proposes Tech Pubs review of the API reference page before publishing the API references.

Implementing the new template for the API reference pages

The following figure delineates the workflow for the generation of API docs from the code:

  • The APIXMLWriter.java file plays an important role in creating API reference pages. This file collects data from @APICommand annotations of each API and stores in an .xml file. The API reference pages in HTML format has been created from this .xml file as described in the diagram.
  • Need to modify the .css file to make any modification in the way the content is displayed on the HTML pages.

 

  • No labels