(This is just a brief overview of the web api, for more complete documentation, see the
tutorials and music library walkthru.)
The Web API enables rapid web application development. It builds on top of
many of the benow apis, and as such, packs a big punch in a small package. As with most of the benow stuff,
it is designed to be easy to program, above all... with all time consuming and repetitive tasks facilitated. It is
also designed to facilitate designing and publishing pages involving complex operations. A goal is to make the
public run-time face of the web api easy enough for a beginner to make a page composed of non-trivial components and
to be able to organize a site. Also a consideration is application deployment and administration, hopefully approaching
the point where there is very little to need to know and do to get a basic site up and going quickly.
The basic function of the web service is to deliver web pages. These web pages may composed of static html,
or dynamic html corresponding to requested operations, or a combination of both. As the primary usage of the intended
web site is to 'do stuff', the web api is tied in with the service api, which 'does stuff' well and in a defined manner
that makes presenting returned stuff easy. By using the service api, things to do (ie services) can be easily
discovered and exposed. Stuff usually spans time, and as such is stored somewhere. The repository api is used for
persisting and fetching objects. It makes storing and fetching linked networks of well defined objects quite easy.
HTML is delivered from the web app. This html is typically created via an XSL transform, which uses an XSL stylesheet
to place and manipulate XML resulting from the request. The XML which is transformed is the result of a marshalling of
the objects resulting from the request by the benow-castor api. The XSL transforms themselves can draw from XSL libraries,
which allows for the grouping of often execute presentation logic to ease implementation. Through libraries, it becomes
very easy to change the look and feel of an entire site via small changes. The typical web page rendering pipeline is:
request - parse - fetch from repository - marshall to xml - run xsl template - deliver html. Again, the focus is on ease
of implementation, and all xsl (for both pages and services) is automatically generated. Web applications are shared
and rely heavily on security to protect sensitive areas. The security api is tightly integrated to keep people from inadvertantly
or maliciously causing mis-operation.
Despite the complexity, the web api is surprisingly fast, due to fast backends and performance optimizations (caching, etc).
By facilitating the page creation process, more time may be devoted to content creation and beautification.
There are many tutorials which explain use and behaviour of the various components that make up the web api.
For a larger example of web api usage, there's the Music Library Application Walkthru, which details the process of creating a simple custom application with the web API.
Javadocs can be built via 'ant javadoc'. Once built, they may be viewed here.