The SitePoint PHP blog has a new post today introducing RAML, a modeling language made specifically for use in APIs to define services available.
n a recent article I introduced Slate, a static site generator specifically designed for writing API documentation. This time around, I'm going to look at something which in many ways is even better. But first, if you'll indulge me for just a moment, I'd like to begin by quoting myself from that article; "[an] API is only as good as its documentation." I think it's worth repeating, since it's all-too-frequently overlooked, and it's one of the motivations for this short series of articles on some of the tools out there to help you write great documentation.
RAML (RESTful API Modeling Language) provides a structured, unambiguous format for describing a RESTful API. It allows you to describe your API; the endpoints, the HTTP methods to be used for each one, any parameters and their format, what you can expect by way of a response and more.
He starts off with a few things that RAML is particularly good at helping with, including being used to generate other documentation. He then moves into writing up some of the actual RAML documentation, noting that it's a derivative of YAML and is just made from text files. He walks through the creation of a sample RAML document including the overall summary information, describing resources, HTTP methods and response structure. He also includes examples of defining query parameters, request data and any security requirements you might have. Finally, he suggests the raml2html tool if you want to generate some HTML output of your configuration, making it easier for normal humans to read.